1

私は3つのオラクルテーブルを持っています。A は B に結合し、B は C に結合します。対応するレコードが B または C に存在するかどうかに関係なく、A からのすべてのレコードが必要です。次のようなクエリを書きました。

select a.name from a,b,c where a.a_id = b.b_id(+) and b.b_id = c.c_id(+)

このクエリは、特に 2 番目の結合では正しくないように思えます。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 に答える