В
FROM working_place wp
JOIN working_place_worker wpw ON ...
WHERE ...
ON
клауза се отнася само към двете таблици, участващи в обединяването, а именно wp
и wpw
. Имената от външната заявка не са видими за него.
WHERE
клауза (и братовчед й HAVING
е средството, чрез което външната заявка е свързана с подзаявката. Имената от външната заявка са видими за него.
За да бъде лесно запомнянето,
- ON е за JOIN, как две таблици се свързват, за да образуват ред (или редове)
- WHERE е относно критериите за избор, тестът, който редовете трябва да преминат
Докато SQL анализаторът ще допусне литерали (които не са имена на колони) в клаузата ON, той чертае линията при препратки към колони извън съединението. Можете да приемете това като услуга, която предпазва от грешки.
Във вашия случай wo
таблицата не е част от JOIN
, и се отхвърля. Това е част от цялата заявка и се разпознава от WHERE
.