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/