パフォーマンスに関しては、それらは同じです(そして同じ計画を作成します)
論理的には、INNER JOIN
を置き換えても、意味のある操作を行う必要があります。 LEFT JOIN
を使用 。
あなたの場合、これは次のようになります:
SELECT *
FROM TableA a
LEFT JOIN
TableXRef x
ON x.TableAID = a.ID
AND a.ID = 1
LEFT JOIN
TableB b
ON x.TableBID = b.ID
またはこれ:
SELECT *
FROM TableA a
LEFT JOIN
TableXRef x
ON x.TableAID = a.ID
LEFT JOIN
TableB b
ON b.id = x.TableBID
WHERE a.id = 1
前者のクエリは、a.id
の実際の一致を返しません。 1
以外 、したがって、後者の構文(WHERE
を使用) )論理的により一貫性があります。