关于oracle的两表联查语句

现有两张表:A和B,其中A表的主键是B表的外键,我想查表A中有但在表B中没有的数据,请问SQL语句该怎么写

5个回答

select a.* from a where a.id not in (select distinct b.a_id from b )

u010144771
你看咩啊 谢谢
2 年多之前 回复

楼上语句好的,但是希望你b表的数据不要太多。因为not in这个东西,数据多了效率会很低,,甚至查询超时出错。

select a.* from a left join b on (a.id=b.id and a.name=b.name) where isnull(b.age)

lllll520520520520520
lllll520520520520520 学到了
2 年多之前 回复

left join 会更好 使用not in 可以参考 in与exists的效率比较

select a.* from a where not exists (select 1 from b where a.id=b.id);

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问
相关内容推荐