1

我有 3 个 oracle 表。A 连接到 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 所以我猜这个查询是对的?还有更好的方法来重写查询吗?

4

1 回答 1

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

于 2012-08-30T04:44:26.667 回答