Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/85.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Mysql 当列为NULL时,如何获取此查询?_Mysql_Sql - Fatal编程技术网

Mysql 当列为NULL时,如何获取此查询?

Mysql 当列为NULL时,如何获取此查询?,mysql,sql,Mysql,Sql,我试图执行此查询以获取所有用户、组和电子邮件的列表,但我的问题是,当用户与任何组都不相关时,因此列radcheck.id_group=NULL,但我仍然希望列出它 选择 radcheck.username作为用户名, group.name作为groupname, group.id作为gid, useremail.email作为电子邮件 来自useremail、group、radcheck 哪里 radcheck.username=useremail.username 和group.id=radc

我试图执行此查询以获取所有用户、组和电子邮件的列表,但我的问题是,当用户与任何组都不相关时,因此列radcheck.id_group=NULL,但我仍然希望列出它

选择
radcheck.username作为用户名,
group.name作为groupname,
group.id作为gid,
useremail.email作为电子邮件
来自useremail、group、radcheck
哪里
radcheck.username=useremail.username
和group.id=radcheck.id_组;

如何正确编写它?

使用显式,
左连接
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
使用表别名通常也是一种很好的做法:它们使查询更易于阅读和维护(并在需要时允许自联接表…。

使用左联接:

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

这可能是几十年前引入现代显式连接表示法的众多原因之一,也是隐式“逗号”连接表示法在几乎同样长的时间内不受欢迎的原因之一。@LeandroFabrisMilani:alias fixed!