我正在尝试执行此查询以获取所有用户、组和电子邮件的列表,但我的问题是当用户与任何组都不相关时,所以列 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;
我怎样才能正确地写呢?
最佳答案
使用显式的LEFT JOIN
:
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
使用表别名通常也是一种很好的做法:它们使查询更易于阅读和维护(并且还允许在需要时自连接表...)。
关于mysql - 当列为 NULL 时如何获取此查询?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55484824/