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