oracle外连接查询

时间:2012-04-30 16:42:07

标签: oracle9i

我有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相同的记录数 所以我猜这个查询是对的?还有更好的方法来重写查询吗?

1 个答案:

答案 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

这应该按照您的预期给出结果

http://rajanmaharjan.com.np