SQLite はどのような結合をサポートしていますか? 質問する

SQLite はどのような結合をサポートしていますか? 質問する

によると結合演算子構文SQLite には 13 種類の結合ステートメントがあります。

,
JOIN
LEFT JOIN
OUTER JOIN
LEFT OUTER JOIN
INNER JOIN
CROSS JOIN
NATURAL JOIN
NATURAL LEFT JOIN
NATURAL OUTER JOIN
NATURAL LEFT OUTER JOIN
NATURAL INNER JOIN
NATURAL CROSS JOIN

それらはすべてユニークですか? どれが同等ですか?

ベストアンサー1

SQLiteの文法は、SQL-92仕様によると、以下の行為は違法です。

*OUTER JOIN
*NATURAL OUTER JOIN
*NATURAL CROSS JOIN

最初の 2 つは、 が<join type>含まれるためにはOUTER、その前に も含まれている必要があるためです<outer join type>。最後のは、は のNATURAL中にのみ出現でき<qualified join><cross join>の中には出現できないためです。これらはどの仕様にも従って動作しないようですので、使用を避けるのが賢明です。

回答したようにメーリングリストCROSS JOIN、SQLite3 は、、INNER JOINおよびの3 つの結合のみをサポートしますLEFT OUTER JOIN。以下は同等です。

, == CROSS JOIN
JOIN == INNER JOIN
LEFT JOIN == LEFT OUTER JOIN

で説明したようにウィキペディアの記事NATURAL キーワードは、同じ名前の列を検索して一致させるための省略形であり、結合タイプには影響しません。

によるSQLite ページ' RIGHT'、' FULLOUTER JOINはサポートされていません。

おすすめ記事