Qua prestaties zijn ze hetzelfde (en produceren dezelfde plannen)
Logischerwijs zou u de bewerking moeten uitvoeren die nog steeds zinvol is als u INNER JOIN
. vervangt met een LEFT JOIN
.
In jouw geval ziet dit er als volgt uit:
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
of dit:
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
De vorige zoekopdracht levert geen echte overeenkomsten op voor a.id
anders dan 1
, dus de laatste syntaxis (met WHERE
) is logischerwijs consistenter.