如果进入连接表的行为空,则选择SQL

时间:2015-08-28 10:23:14

标签: sql

有两张桌子T1和T2 如果进入T2相关行不存在,sql是否有任何变体从T1中选择所有行?没有JoinLeft

例如

table user
id---name
1     A
2     B

task
id----idUser
1       1

结果== 2,B BR!

1 个答案:

答案 0 :(得分:1)

典型的方法是使用not in

select u.*
from user u
where u.id not in (select iduser from task);

但是,not exists具有更好的语义,因为它更直观地处理NULL值:

select u.*
from user u
where not exists (select 1 from task t where t.iduser = u.id);