Dalam
FROM working_place wp
JOIN working_place_worker wpw ON ...
WHERE ...
ON
klausa merujuk hanya ke dua tabel yang ikut bergabung, yaitu wp
dan wpw
. Nama dari kueri luar tidak terlihat olehnya.
WHERE
klausa (dan sepupunya HAVING
adalah cara kueri luar berkorelasi dengan subkueri. Nama dari kueri luar adalah terlihat untuk itu.
Agar mudah diingat,
- ON adalah tentang GABUNG, bagaimana dua tabel berhubungan untuk membentuk baris (atau baris)
- MANA tentang kriteria seleksi, tes baris harus lulus
Sementara parser SQL akan menerima literal (yang bukan nama kolom) dalam klausa ON, itu menarik garis pada referensi ke kolom di luar gabungan. Anda dapat menganggap ini sebagai bantuan yang menjaga dari kesalahan.
Dalam kasus Anda, wo
tabel bukan bagian dari JOIN
, dan ditolak. Ini adalah bagian dari keseluruhan kueri, dan dikenali oleh WHERE
.