Проблема с SQL запросом
У меня есть запрос, который выводит статьи и все данные, которые относят к ней.
Код:
SELECT Код:
SELECT |
Цитата:
|
насколько я знаю, нельзя просто взять все "ON" для каждого джойна, и свалить их в одну кучу в конце. Они тогда будут относиться только к последнему джойну. В первом запросе это прокатило, потому что там INNER JOIN, связи один к одному, ссылочная целостность и прочее, т.е. на каждую строку из questions нашлось по одной строке из других таблиц. А с комментами всё по другому.
Кстати, непонятно, зачем GROUP BY в первом запросе. попробуй так: SELECT questions.id, questions.question_name, questions.answer, questions.variant1, questions.variant2, questions.variant3, questions.variant4, questions.user_id, questions.city_id, questions.street_id, questions.date, questions.img, users.login, city.city_name, street.street_name, COUNT(comments.questions_id) as countComment FROM questions INNER JOIN users ON questions.user_id = users.id INNER JOIN city ON questions.city_id = city.id INNER JOIN street ON questions.street_id = street.id LEFT JOIN comments ON comments.questions_id = questions.id GROUP BY questions.id ORDER BY `date` DESC ------------------------------------------------------------- либо такой вариант (надо посмотреть, что быстрее): SELECT questions.id, questions.question_name, questions.answer, questions.variant1, questions.variant2, questions.variant3, questions.variant4, questions.user_id, questions.city_id, questions.street_id, questions.date, questions.img, users.login, city.city_name, street.street_name, comments.countComment FROM questions INNER JOIN users ON questions.user_id = users.id INNER JOIN city ON questions.city_id = city.id INNER JOIN street ON questions.street_id = street.id LEFT JOIN ( select id, count(*) as countComment from comments GROUP BY questions_id ) comments ON comments.questions_id = questions.id ORDER BY questions.date DESC |
Спасибо
|
Часовой пояс GMT +3, время: 01:55. |