Отправляет email-рассылки с помощью сервиса Sendsay

[prg] mysql-запрос

Приветствую, помогите сформировать mysql запрос на php.

Нужно одним запросом сделать два.
Суть такая:
В первом запросе мы получаем список вопросов.
Вторым запросом нужно получить ответы к вопросам. В каждом ответе есть
id вопроса.
То есть ответы на сайте выводятся по id вопроса.
Как мне одним mysql запросом получить список вопросов и ответов к ним?
Спасибо!

Ответить   Sun, 2 Aug 2020 18:30:27 +0300 (#3655758)

 

Ответы:

Mai omentaina, Владислав!

поскольку вы не привели кода и структуры таблиц, ответ будет столь же
краток: используйте JOIN.

Ответить   Sun, 2 Aug 2020 19:26:21 +0200 (#3655759)

 

02.08.2020 20:26, Menelion Elensu'le: пишет:

Код примерно такой:

запрос 1

mysql_query("SELECT question FROM mytable");

далее перебираем полученый массив вопросов и к каждому вопросу получаем
из базы ответы,ответы, напоминаю, имеют id вопроса.

запрос 2

mysql_query("SELECT question FROM mytable where id = $id");
Вопросы и ответы находятся в одной таблице.
Как всё это дело облегчить и по возможности собрать в один запрос, так
как в базе 80000 вопросов и если к каждому вопросу делать отдельный
запрос в базу за ответами, то получиться 80000 запросов, что полный бред.

Ответить   Sun, 2 Aug 2020 20:50:39 +0300 (#3655765)

 

Приветствую всех!

Без структуры таблицы (поля и их типы), трудно понять, что собой
представляет поля question и id.
Является ли id уникальным для каждой записи или нет? Если вопросы и ответы в
одной таблицы, то как отличить их друг от друга?
Возможно, вам надо смотреть в сторону запросов с подзапросами (то есть когда
после FROM в круглых скобках идёт второй SELECT), но опять же для
конкретного ответа нужна структура таблицы БД.

Успехов. Анатолий.

Исходное сообщение > запрос 1

Ответить   "i_chay" Mon, 3 Aug 2020 17:28:02 +0300 (#3655793)

 

Приветствую!

Все id конечно же уникальны, в mysql-запросах я привел пример того, как
я могу это реализовать, но это крайне тяжелая операция в плане ресурсов.

Вопросы и ответы имеют разные метки, так и различаются, но в данной
проблеме это не причем.

Нужна грамотная и главное легковесная выборка из базы.

Ответить   Mon, 3 Aug 2020 16:48:30 +0300 (#3655795)

 

Приветствую всех!

Подзапрос (т. е. вложенный select), предположительно, должен был бы отбирать
id вопросов, поэтому способ отличить вопрос от ответа имеет смысл в
контексте темы.
А что такое "разные метки" в терминах реляционных СУБД?

Другой вариант не предполагает использование подзапросов -- вам не следует
в цикле посылать запросы к БД, В цикле вам нужно собрать все требуемые id в
массив, а затем при помощи функции implode() собрать строку для выражения
WHERE со всеми условиями, объединёнными оператором OR.
И послать единственный второй запрос с таким длинным выражением WHERE.
Помешать реализации этого способа может ограничение на общую длину запроса,
тогда придется делать несколько запросов с более короткими выражениями
WHERE.
Несмотря на громоздкость такого запроса, на стороне сервера БД он окажет
гораздо меньшую нагрузку, чем 83 тыс. отдельных запросов.

Успехов. Анатолий.
Исходное сообщение > Вопросы и ответы имеют разные метки, так и различаются, но в данной

Ответить   "i_chay" Mon, 3 Aug 2020 20:44:14 +0300 (#3655809)