mysql - 即使 id 为空,我们如何显示记录?

标签 mysql sql

SELECT groups.*
     , roles.rol_display_name
     , users.usr_fname 
FROM  groups, groups_roles, roles, users 
WHERE groups.id = groups_roles.groups_id and 
      roles.id = groups_roles.roles_id and  
      groups.grp_manager_id = users.id   

在我的查询中,如果所有 AND 条件都为真,那么它只会显示所有记录,但我的要求是即使 manager.id 为 null 它也应该显示所有记录users.usr_fname 为 null 的记录。

最佳答案

加入users 表时,使用left join 而不是inner join(隐式或其他方式):

SELECT g.*
     , r.rol_display_name
     , u.usr_fname 
FROM  groups g
JOIN groups_roles gr on g.id = gr.groups_id
JOIN roles r on r.id = gr.roles_id
LEFT JOIN users u on g.grp_manager_id = u.id   

关于mysql - 即使 id 为空,我们如何显示记录?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33870592/

相关文章:

mysql - 尝试....在 mysql 中捕获事务?

php - Laravel 5.7 Schema 外键 SQLSTATE[42000] 迁移

mysql - 如何优化这个 MySQL 查询? (移动窗口)

mysql - MySQL 日期时间的工作原理

mysql - 无法连接到 CloudBees 中托管的 MySQL 数据库

sql - MySQL 中的未知列错误 (#1054)

java - 在 SQL 数据库中存储 android 复选框状态

php - 按网页上的按钮添加到表格中的值?

mysql - 我可以通过一个查询来完成吗?

mysql - 从 MySQL 表中删除部分重复项