@Yuriy-first

Из нескольких таблиц mysqli надо выбрать данные и сгрупировать их, при выводе мой код почти все делает как надо, но есть недостаток как исправить?

есть запрос в БД который выбирает данные из users и джоином тянет несколько таблиц phone_number, email, countries.
SELECT users.id, users.name, users.soname, users.adress ,users.zip_city, countries.name as country, GROUP_CONCAT(DISTINCT phone_number.phone_number SEPARATOR '
') as phone_number , GROUP_CONCAT(DISTINCT email.email SEPARATOR '
') as email
FROM users
RIGHT JOIN (SELECT id, user_id, status, phone_number FROM phone_number WHERE phone_number.status = "1") phone_number ON phone_number.user_id=users.id
RIGHT JOIN (SELECT id, user_id, status, email FROM email WHERE email.status = "1") email ON email.user_id=users.id
JOIN countries ON countries.id=users.country_id
GROUP BY users.id
ORDER BY users.id DESC
Проблема в том что когда он выбирает эти данные то значения которые есть в таблице email но нет в таблице phone_number он не выбирает и наоборот только если данные есть и там и там тогда он выбирает их. Думаю проблема возможно с групировками? если убираю одну из таблиц email или phone_number то работает нормально.
  • Вопрос задан
  • 43 просмотра
Решения вопроса 1
@ArchDemon
Почитайте в чём различие RIGHT JOIN от LEFT JOIN и INNER JOIN
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

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

Похожие вопросы