に置き換えるINNER JOIN
とOUTER JOIN
差が出ます。
それ以外の場合、これらのクエリ:
SELECT ...
FROM A
INNER JOIN
B
ON A.PK = B.FK
WHERE A.Name = "Foo"
AND B.Title = "Bar"
SELECT ...
FROM A
INNER JOIN
B
ON A.PK = B.FK
AND B.Title = "Bar"
WHERE A.Name = "Foo"
SELECT *
FROM A, B
WHERE B.Title = "Bar"
AND A.Name = "Foo"
AND A.PK = B.FK
同一です。
Oracle
、MySQL
、PostgeSQL
およびSQL Server
はそれらをまったく同じように扱い、それらすべてにまったく同じ計画を使用します。
私はこれを使用します:
SELECT ...
FROM A
INNER JOIN
B
ON B.FK = A.PK
WHERE A.Name = "Foo"
AND B.Title = "Bar"
に単一列のキーがB.FK
あり、これが次の場合:
SELECT ...
FROM A
INNER JOIN
B
ON B.FK = A.PK
AND B.Title = "Bar"
WHERE A.Name = "Foo"
に複合キーがある場合(B.FK, B.title)
。
この場合、結合条件はより視覚的になります。