Как я могу получить этот запрос, когда столбец NULL? - PullRequest
4 голосов
/ 03 апреля 2019

Я пытаюсь выполнить этот запрос, чтобы получить список всех пользователей, групп и электронных писем, но моя проблема в том, что пользователь не связан ни с одной группой, поэтому столбец radcheck.id_group равен = NULL, но я по-прежнемухочу перечислить это.

SELECT 
    radcheck.username AS username, 
    group.name AS groupname, 
    group.id as gid, 
    useremail.email as email 
FROM useremail, group, radcheck 
WHERE 
    radcheck.username = useremail.username 
    AND group.id = radcheck.id_group;

Как мне правильно написать?

Ответы [ 2 ]

1 голос
/ 03 апреля 2019

Использовать левые соединения:

SELECT 
  radcheck.username AS username, 
  group.name AS groupname, 
  group.id as gid, 
  useremail.email as email 
FROM useremail left join radcheck
ON radcheck.username = useremail.username
left join group
ON group.id = radcheck.id_group
1 голос
/ 03 апреля 2019

Используйте явные, LEFT JOIN s:

SELECT 
    r.username AS username, 
    g.name AS groupname, 
    g.id as gid, 
    u.email
FROM useremail u
LEFT JOIN radcheck r ON r.username = u.username
LEFT JOIN group g ON g.id = r.id_group

Также часто рекомендуется использовать псевдонимы таблиц: они упрощают чтение и обслуживание запроса (а также позволяют самостоятельное объединение таблиц, когданеобходимо ...).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...