Как сделать чтобы соединение таблиц в SQL не было «жестким»?

Добрый вечер всем! Столкнулся с проблемой: есть 3 таблицы: dle_users, dle_usergroups и dle_social_login.

В таблицу dle_social_login записываются данные при авторизации на сайте через приложения социальных сетей. Соответствие происходит через столбец dle_social_login.id = dle_users.user_id.

Проблема в том, что SQL запрос выводит только те строки у которых есть записи в столбце "id" в таблице "dle_social_login".

Например, пользователь с id = 3 авторизовался классическим способом email/пароль -> данные этого пользователя не попадут в dle_social_login -> запрос не выводит этого пользователя. А выводить нужно.

SELECT
  dle_users.user_id,
  dle_users.email,
  dle_usergroups.group_name,
  dle_social_login.provider
FROM dle_users
  INNER JOIN dle_usergroups
    ON dle_users.user_group = dle_usergroups.id
  INNER JOIN dle_social_login
    ON dle_users.user_id = dle_social_login.id
  • Вопрос задан
  • 232 просмотра
Решения вопроса 1
@Fortop
Tech/Team lead
Убрать INNER JOIN
И использовать LEFT JOIN
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы