我有3个oracle表。连接到B和B连接到C.我希望A中的所有记录都是在B或C中是否存在相应的记录。我写了这样的查询:
select a.name from a,b,c where a.a_id = b.b_id(+) and b.b_id = c.c_id(+)
此查询对我来说似乎不对,尤其是第二次加入时。如果在A中有记录但在B和C中没有相应的内容会发生什么?它还能获取记录吗?
由于某种原因,上述查询返回与select a.name from a
相同的记录数
所以我猜这个查询是对的?还有更好的方法来重写查询吗?
答案 0 :(得分:0)
我认为更好的查询可以是
Select a.name from A a left join B b on a.a_id=b.b_id inner join C c on b.b_id=c.c_id
这应该按照您的预期给出结果