6

しばらくの間、私は INNER JOIN の使用方法しか知りませんでした。LEFT/RIGHT (OUTER) JOIN が何をするかについてはまったく手がかりがありませんでした。ただ、読んだだけではRIGHTの目的がわかりません。

逆の LEFT JOIN と同じように思えます

私の例に従うと:

SELECT t1.* FROM table1 t1 RIGHT JOIN table2 t2 ON t2.value = t1.value

以下と同じです:

SELECT t2.* FROM table2 t2 LEFT JOIN table1 t1 ON t1.value = t2.value

これは正しいですか、それとも何か不足していますか?

4

3 に答える 3

3

はい、あなたが正しい。ウィキペディアから:

右外部結合(または右結合)は、テーブルの処理が逆になっていることを除いて、左外部結合によく似ています。「右」テーブル(B)のすべての行は、結合されたテーブルに少なくとも1回表示されます。「左」テーブル(A)から一致する行が存在しない場合、Bに一致しないレコードのAからの列にNULLが表示されます。右外部結合は、右テーブルからのすべての値と左からの一致値を返します。テーブル(一致する結合述部がない場合はNULL)。

于 2013-02-27T19:46:31.690 に答える
1

はい、これは正しいです。検索すると、より多くの情報を見つけることができます。

SQLServerの左結合と右結合の違い

于 2013-02-27T19:46:22.717 に答える
1

Right join逆に相当しますleft join

それはそれを役に立たなくしません。一部の人々は、そのようにクエリを書くことを好むかもしれません。私はそのような人ではありません。個人的には、右外部結合を使用することはほとんどありません。また、クエリに左外部結合と右外部結合の両方を含めることはできません。

誰かが好む場合があるかもしれません:

select . . .
from table t right outer join
      (very
       long
       subquery
       here
      ) t2
      on . . .

テーブルを2番目に置くこと。

于 2013-02-27T19:46:57.833 に答える