Præstationsmæssigt er de de samme (og producerer de samme planer)
Logisk set bør du lave den operation, der stadig har mening, hvis du erstatter INNER JOIN med en LEFT JOIN .
I netop dit tilfælde vil dette se sådan ud:
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
eller dette:
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
Den tidligere forespørgsel vil ikke returnere nogen faktiske match for a.id andet end 1 , så sidstnævnte syntaks (med WHERE ) er logisk mere konsistent.