sql查询以选择所有具有存储而没有存储的用户

xriantvc  于 2021-07-26  发布在  Java
关注(0)|答案(1)|浏览(281)

我有三张table,
用户
用户\u角色
用户\u商店
所有用户都有一个角色,但并非所有用户都有一个存储。我想选择所有具有任何角色的用户并打印出他们的存储,但有些用户在第三个表中没有任何关于存储的记录。
这是我的sql查询

select users.user_id, users.user_org, users.user_login, users_role.user_role, users_store.store_name 
from users, users_role, users_store     
WHERE users.user_login = users_role.user_login 
AND users.user_login = users_store.store_owner

通过这样做,我只选择有商店的用户,但我也需要选择没有商店的用户

lnxxn5zx

lnxxn5zx1#

不要在句子中使用逗号 FROM 条款。始终使用适当的、明确的、标准的、可读的 JOIN 语法。
你需要 LEFT JOIN 学生:

select u.user_id, u.user_org, u.user_login, ur.user_role, us.store_name 
from users u left join
     users_role ur
     on u.user_login = ur.user_login left join
     users_store us
     on u.user_login = us.store_owner;

相关问题