Dari segi kinerja, keduanya sama (dan menghasilkan rencana yang sama)
Logikanya, Anda harus membuat operasi yang masih masuk akal jika Anda mengganti INNER JOIN
dengan LEFT JOIN
.
Dalam kasus Anda, ini akan terlihat seperti ini:
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
atau ini:
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
Kueri sebelumnya tidak akan mengembalikan kecocokan sebenarnya untuk a.id
selain 1
, jadi sintaks yang terakhir (dengan WHERE
) secara logis lebih konsisten.