Saya tidak menggunakan sintaks MENGGUNAKAN, karena
- sebagian besar gabungan saya tidak cocok untuk itu (bukan nama bidang yang sama yang dicocokkan, dan/atau beberapa kecocokan dalam gabungan) dan
- tidak jelas apa terjemahannya dalam kasus dengan lebih dari dua tabel
yaitu dengan asumsi 3 tabel dengan kolom 'id' dan 'id_2', bukan
T1 JOIN T2 USING(id) JOIN T3 USING(id_2)
menjadi
T1 JOIN T2 ON(T1.id=T2.id) JOIN T3 ON(T1.id_2=T3.id_2 AND T2.id_2=T3.id_2)
atau
T1 JOIN T2 ON(T1.id=T2.id) JOIN T3 ON(T2.id_2=T3.id_2)
atau sesuatu yang lain lagi?
Menemukan ini untuk versi database tertentu adalah latihan yang cukup sepele, tetapi saya tidak memiliki keyakinan besar bahwa itu konsisten di semua database, dan saya bukan satu-satunya orang yang harus mempertahankan kode saya (jadi orang lain juga harus mengetahui apa yang setara dengannya).
Perbedaan yang jelas dengan WHERE vs ON adalah jika gabungannya berada di luar:
Dengan asumsi T1 dengan bidang ID tunggal, satu baris berisi nilai 1, dan T2 dengan bidang ID dan VALUE (satu baris, ID=1, VALUE=6), maka kita mendapatkan:
SELECT T1.ID, T2.ID, T2.VALUE FROM T1 LEFT OUTER JOIN T2 ON(T1.ID=T2.ID) WHERE T2.VALUE=42
tidak memberikan baris, karena WHERE harus cocok, sedangkan
SELECT T1.ID, T2.ID, T2.VALUE FROM T1 LEFT OUTER JOIN T2 ON(T1.ID=T2.ID AND T2.VALUE=42)
akan memberikan satu baris dengan nilai
1, NULL, NULL
karena AKTIF hanya diperlukan untuk mencocokkan gabungan, yang bersifat opsional karena berada di luar.