Задать вопрос
CodeByZen
@CodeByZen
php, js, my/mssql, sqlite, html, css, it-consult

Mysql left join не возвращает ничего если нет во второй таблице, как исправить?

Есть две таблички. Пользователи и фотки.

Делаю запрос.
SELECT users.*, up.filename, up.type FROM `users` LEFT JOIN users_photos AS up ON up.ancor_id = users.id WHERE up.type = 'main' GROUP BY users.id ORDER BY -users.sort DESC

Если фотки нет то результат пустой. Как сделать так что если нет фотки то выдаются просто данные из таблици users?
  • Вопрос задан
  • 3816 просмотров
Подписаться 3 Оценить Комментировать
Решения вопроса 1
@whats
Обратить внимание на условие в предикате
WHERE up.type = 'main' и понимать порядок запроса.
Вы в начале джойните таблицы по условию в ON, а потом фильтруете результат. То есть если нет фотографии, поля во второй таблице не имеют значения (NULL) следовательно предикат отрабатывает и возвращает вам пустые строки.

Переместите условие в ON.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы
27 дек. 2024, в 17:43
500 руб./за проект
27 дек. 2024, в 17:36
2000 руб./за проект
27 дек. 2024, в 17:34
1500 руб./за проект