Задавайте вопросы, мы ответим
Вы не зашли.
Ищу красивое решение...
Типичная ситуация: две таблицы - questions и answers.
В questions юзеры задают вопросы, в answers другие юзеры отвечают, у обоих есть общий столбец unid, то есть одной записи в таблице questions могут соответствовать от нуля до нескольких записей в таблице answers.
Задача - сделать постраничный вывод (то есть с limit) всех вопросов (с ответами и без), но так, чтобы под каждым вопросом были перечислены ответы.
Конечно, можно сделать выборку по вопросам, и на каждый результат делать выборку по ответам, что приведет к тому, что на каждой странице будет выполняться по 30+ mysql запросов, что как-то дико... Можно ли как-то оптимизировать через один запрос?
Если нет, то тогда другой вариант: выводить каждый вопрос, количество ответов и ПОСЛЕДНИЙ ответ по дате добавления. Пока я добился только того, что удается одним запросом через left join вывести вопрос, количество ответов и ПЕРВЫЙ ПОПАВШИЙСЯ ответ, при этом order by по столбцу с датой ответа никаким образом не влияет на то, какой именно ответ присоединится, похоже, mysql всегда берет первую попавшуюся запись:
SELECT unknown_questions.*, users.username, count(unknown_answers.unid) as cnt, unknown_answers.*
FROM unknown_questions
left join users on unknown_questions.userid=users.userid
left join unknown_answers on unknown_questions.unid=unknown_answers.unid
Group by unknown_questions.unid
order by undateadded desc
Что можете посоветовать?
Неактивен