254

SQLJOINとは何ですか? また、さまざまな型とは何ですか?

4

6 に答える 6

341

W3schoolsのイラスト:


INNER JOIN - 両方のテーブルの条件に一致するレコードのみ


LEFT JOIN - テーブル 2 の条件に一致するレコードと組み合わせたテーブル 1 のすべてのレコード


RIGHT JOIN - 条件に一致するテーブル 1 のレコードと組み合わせたテーブル 2 のすべてのレコード


FULL OUTER JOIN - ON 句に一致するが両方のテーブルを保持する、左と右の両方の外部結合の組み合わせ


于 2013-11-30T09:34:42.553 に答える
260

とはSQL JOIN?

SQL JOIN2 つ以上のデータベース テーブルからデータを取得する方法です。

違いは何SQL JOINですか?

全部で 5 つJOINの s があります。彼らです :

  1. JOIN or INNER JOIN
  2. OUTER JOIN

     2.1 LEFT OUTER JOIN or LEFT JOIN
     2.2 RIGHT OUTER JOIN or RIGHT JOIN
     2.3 FULL OUTER JOIN or FULL JOIN

  3. NATURAL JOIN
  4. CROSS JOIN
  5. SELF JOIN

1. JOIN または INNER JOIN :

この種の aJOINでは、両方のテーブルで条件に一致するすべてのレコードを取得し、一致しない両方のテーブルのレコードは報告されません。

言い換えると、INNER JOIN次の 1 つの事実に基づいています。両方のテーブルで一致するエントリのみをリストする必要があります。

JOIN他のJOINキーワード ( INNEROUTERLEFTなど)のないa は であることに注意してくださいINNER JOIN。言い換えれば、(参照: JOIN と INNER JOIN の違いJOIN)の構文糖衣です。INNER JOIN

2.アウタージョイン:

OUTER JOIN検索する

1 つのテーブルの一致した行と他のテーブルのすべての行、またはすべてのテーブルのすべての行 (一致するかどうかは関係ありません)。

外部結合には次の 3 種類があります。

2.1 LEFT OUTER JOIN または LEFT JOIN

この結合は、左側のテーブルのすべての行と、右側のテーブルの一致する行を組み合わせて返します。右側のテーブルに一致する列がない場合は、NULL値が返されます。

2.2 RIGHT OUTER JOIN または RIGHT JOIN

これJOINにより、右側のテーブルのすべての行が、左側のテーブルの一致する行と共に返されます。左のテーブルに一致する列がない場合は、NULL値が返されます。

2.3 FULL OUTER JOIN または FULL JOIN

これはとJOINを組み合わせたものです。条件が満たされた場合はいずれかのテーブルから行を返し、一致しない場合は値を返します。LEFT OUTER JOINRIGHT OUTER JOINNULL

言い換えれば、OUTER JOIN次の事実に基づいています: テーブルの 1 つ (RIGHT または LEFT) またはテーブルの両方 (FULL) の一致するエントリのみをリストする必要があります。

Note that `OUTER JOIN` is a loosened form of `INNER JOIN`.

3.自然結合:

これは、次の 2 つの条件に基づいています。

  1. これJOINは、同じ名前を持つすべての列に対して行われます。
  2. 結果から重複する列を削除します。

これは本質的に理論的なものであるように思われ、結果として (おそらく) ほとんどの DBMS はこれをサポートすることさえしません。

4.クロスジョイン:

これは、関連する 2 つのテーブルのデカルト積です。a will の結果は、CROSS JOINほとんどの状況では意味がありません。さらに、これはまったく必要ありません (正確に言うと、必要最小限です)。

5.セルフジョイン:

の別の形式でJOINはなく、それ自体に対するテーブルのJOIN( INNEROUTERなど) です。

演算子に基づく JOIN

句に使用される演算子に応じて、JOIN2 種類のJOINs が存在する可能性があります。彼らです

  1. 等結合
  2. シータ結合

1.等結合:

どのようなJOIN型 ( INNER、など) でも、等値演算子 (=) のみを使用する場合、は であるOUTERと言います。JOINEQUI JOIN

2.シータ結合:

これは と同じですEQUI JOINが、>、<、>= などの他のすべての演算子を使用できます。

多くの人は、EQUI JOINと Thetaの両方を などJOINに似ていると考えています。しかし、私はそれが間違いであり、アイデアを曖昧にしていると強く信じています. などはすべてテーブルとそのデータに接続されているのに対し、andは前者で使用する演算子にのみ接続されているためです。INNEROUTERJOININNER JOINOUTER JOINEQUI JOINTHETA JOIN

NATURAL JOIN繰り返しますが、ある種の「独特」と見なす人はたくさんいEQUI JOINます。実際、私が言及した最初の条件のために、それは本当ですNATURAL JOINNATURAL JOINただし、単にs だけに限定する必要はありません。INNER JOINs、OUTER JOINs なども可能性がありEQUI JOINます。

于 2013-07-30T11:48:12.387 に答える
10

私の意見では、言葉よりもよく説明するイラストを作成しました。 SQL Join 説明表

于 2015-08-12T22:22:18.377 に答える