62

LEFT OUTER JOIN または RIGHT OUTER JOIN と呼ばれる結合を見てきました。いくつかの場所で、LEFT JOIN または RIGHT JOIN を見たことがあります。私はこれに混乱しています。

2 日前に質問を投稿しましたが、ソリューションが提供するリンクを理解できません。

これらのタイプの結合はどちらも同じですか、それとも 2 つの間に何らかの違いがありますか?

4

5 に答える 5

83

両方に違いはありません。結合の視覚的表現を参照してください

于 2013-03-15T06:00:02.803 に答える
33

彼らが引用した最初のリンクはあなたに与えます:

INNER JOIN: 両方のテーブルに一致する行が返されます。

LEFT JOIN / LEFT OUTER JOIN: 右側のテーブルに一致する行がない場合でも、左側のテーブルからすべての行を返します。

RIGHT JOIN / RIGHT OUTER JOIN: 左側のテーブルに一致する行がない場合でも、右側のテーブルからすべての行を返します。

FULL JOIN / FULL OUTER JOIN / OUTER JOIN: いずれかのテーブルに一致する行が返されます。

SELF JOIN: テーブルが 2 つのテーブルであるかのように、テーブルをそれ自体に結合するために使用され、SQL ステートメントで少なくとも 1 つのテーブルの名前を一時的に変更します。

CARTESIAN JOIN: 2 つ以上の結合されたテーブルからの一連のレコードのデカルト積を返します。

self joinは実際には ではありませんspecial join。テーブルをそれ自体で結合できるという事実を反映しているだけです。これを行うには、同じステートメントに複数回出現するという事実に対処するために、エイリアスを作成する必要があります。

は、制約条件cartesian joinのない と見なすことができます。inner joinまたは、を制限 (結合条件) を追加してinner joinとして表示することもできます。cartesian join

于 2013-03-15T06:03:45.407 に答える
4

JOINのマニュアル ページを見ると、次の行が表示されます。

join_table:

   table_reference [INNER | CROSS] JOIN table_factor [join_condition]

   | table_reference STRAIGHT_JOIN table_factor

   | table_reference STRAIGHT_JOIN table_factor ON conditional_expr

| | テーブル参照 {LEFT|RIGHT} [OUTER] JOIN テーブル参照 結合条件

   | table_reference NATURAL [{LEFT|RIGHT} [OUTER]] JOIN table_factor

太字の行は、キーワード OUTER がオプションであることを明確に示しています。

于 2013-03-15T06:09:24.537 に答える
3

MySQL構文でLEFT OUTER JOINは、LEFT JOIN同一です:(http://dev.mysql.com/doc/refman/5.0/en/join.htmlから)

| table_reference {LEFT|RIGHT} [OUTER] JOIN table_reference join_condition
| table_reference NATURAL [{LEFT|RIGHT} [OUTER]] JOIN table_factor

OUTERLEFT / RIGHT JOINのキーワードは、オプションであることに注意してください。

LEFT結合とRIGHT結合は、どちらも外部結合です。キーワードを必要とするSQLにはいくつかの種類があると思いますがOUTER、MySQLは必要ありません。つまり、LEFT JOIN有効でない場合があります。

于 2013-03-15T06:00:47.817 に答える
1

私は SQL Server で作業していますが、私の使用法と経験によれば、 と の間にまったく違いはLEFT JOINありませんLEFT OUTER JOINRIGHT JOINとについても同様ですRIGHT OUTER JOINLEFT JOINSQL Server でキーワードを使用する場合、それは単に意味しますLEFT OUTER JOIN。したがって、私の意見では、すべてのデータベース エンジンで同じ一般的なルールです。

ここここを参照

于 2013-03-15T07:13:31.103 に答える