mysql - 当列为 NULL 时如何获取此查询?

标签 mysql sql

我正在尝试执行此查询以获取所有用户、组和电子邮件的列表,但我的问题是当用户与任何组都不相关时,所以列 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/

相关文章:

PHP » 单例 MySQL 连接

sql - 按 Postgresql 分组

MySQl 在 CASE 语句中使用 COUNT

用于生成字母数字字符串中的下一个序列的 SQL 代码

php - php 获取浏览量

mysql - 如何按相关记录的数量进行分组

java - 单击命令按钮时获取 NULL 值

php - Quiz App MySQL 存储问题/答案的更好方法

MySQL 隔离级别可重复读取和更新中的原子增量

mysql按月分组,自定义开始日期