2

以下の2つのクエリの違いは何ですか

アップデート

この質問は、 SQLServerのLEFTJOINとLEFTOUTERJOINの同様の質問ですでに回答されています。

SELECT * FROM ca 
LEFT JOIN exam 
ON ca.subject = exam.subject

SELECT * FROM ca 
LEFT OUTER JOIN exam 
ON ca.subject = exam.subject

テーブル

Table 'CA'
--------------------
subject|score
----------------
ENG    |25
MTH    |34
BIO    |18


Table 'Exam'
--------------------
subject|score
----------------
ENG    |25

2つのクエリを実行すると、mysql、sqlserver2008で同じ結果が生成されます。Oracleではテストしていません。

subject | score1 | subject | score1
--------------------------------------
ENG       14       ENG       44
MTH       28       NULL      NULL
BIO       22       NULL      NULL

そのOUTER句の目的は何ですか

4

5 に答える 5

8

違いはありません。OUTERキーワードはオプションです。

于 2012-06-09T18:49:11.627 に答える
2

これらは、すべてのLEFTJOINクエリもLEFTOUTERJOINであるという意味で同等です。

詳細については、 http://en.wikipedia.org/wiki/Join_ (SQL)#Outer_joinsを参照してください。

于 2012-06-09T18:54:19.257 に答える
1

LEFTとの間に違いはありませんLEFT OUTER; キーワードはOUTER省略できます。

于 2012-06-09T18:49:56.030 に答える
1

一部のデータベースでは、LEFTJOINはLEFTOUTER JOINと呼ばれるため、同じことです。キーワードOUTERはオプションです。したがって、これは外部結合であることを忘れないでください。

キーワードLEFT、RIGHT、またはFULLは必須です。左、右、および完全外部結合は、外部結合の唯一のタイプです。そしてもちろん、キーワードJOINは必須です。

于 2012-06-09T18:50:27.423 に答える
0

結合には、内部、左外部、右外部、および完全外部の4つのタイプがあります。左結合、右結合、および完全結合は、単に外部結合のタイプの省略形です。

于 2012-06-09T18:51:11.673 に答える