パフォーマンスに関しては、それらは同じです(そして同じ計画を作成します)
論理的には、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を使用) )論理的により一貫性があります。