2012-03-07 2 views
1

私はSQLを勉強しているので、私は全くテストをしなかったので、私の愚かな質問は申し訳ありません。明らかに(私の推測ではLOL)LEFTとRIGHT joinはテーブル(オペランド)を逆にすることができます。これは正しいですか?左右のジョイン:オペランドを反転できるので実際の違いは何ですか?

はい、なぜ私はこの書くことを好む必要がある場合:

SELECT * FROM aaa LEFT OUTER JOIN bbb ON aaa.x = bbb.x 

の代わりに、この:私が見つけ

SELECT * FROM bbb RIGHT OUTER JOIN aaa ON aaa.x = bbb.x 
+0

「ON」句の順序は問題ではありません - 重要なことは、OUTER JOINされているものと、どのように(LEFT、RIGHT、FULL)かです。個人的には、私は 'RIGHT'の使用を見ません、私はいつも' LEFT'を使用しています... –

+0

私はa = bとb = aの違いではないことを知っています、私はjoinオペランドについて話します – skyline26

+0

表**と**のオペランドが逆である限り、それらは同等です。 OUTER JOINされたものは何でも、オプションになります(定義された関係のデータがない場合、その参照からの列はすべてNULLになる可能性があります)。 –

答えて

3

多くのシナリオでは、ストアドプロシージャ、ビュー、または2つ以上のテーブルのデータが必要なクエリなど、2つ以上のテーブルを結合する必要があります。これらのシナリオでは、クエリの開始点(この場合はテーブル)を選択する必要があります。

テーブル "aaa"でクエリを開始するには適していますが、他の "bbb"ではより良いでしょう。

これは、単にLEFTRIGHTの結合が存在する理由です。

8

最良の方法は、あなたが

を疑う画像鮮明なうち以下に見ています

番地:How do I decide when to use right joins/left joins or inner joins Or how to determine which table is on which side?

alt text

+0

はい、これは私の質問に答えることができません:画像の最初の左上の例を選択します(SELECT * FROM aaa LEFT JOIN bbb on aaa.x = bbb.x)は、(SELECT * FROM bbb RIGHT JOIN aaa ON aaa.x = bbb.x)かどうか? – skyline26

+0

@toPeerOrNotToPeer - 私ははい......... –

+0

そう...再び、私はテーブル名を反転することができるので、左と右の間に何かがあれば、実際の違いは何ですか? – skyline26

関連する問題