mysql выбрать пользователя, который не размещен на сайте

Я хотел бы выбрать пользователей, которые не отправили работу.

Я пробовал это:

SELECT 
    e.id, e.companyName, ee.emailAddress, ee.firstName, ee.surname    
FROM 
    employer as e, country as country, employerUser as ee , countryRegion as re, job as j 
WHERE 
    country.iso2=e.countryISO2FK AND ee.employerIDFK=e.id AND ee.originalUser=1 AND country.iso2='GB' AND (e.regionCodeFK ='GTL' AND e.regionCodeFK = re.code OR e.regionCodeFK ='' OR e.city ='' ) AND e.status=1 AND e.isActive=1 AND e.id=j.employerIDFK AND j.employerIDFK IS NULL

Кто-нибудь знает, что я делаю неправильно?

-1
источник поделиться
1 ответ

Вы используете CROSS JOIN с фильтром WHERE, который не позволит вам найти элементы, которые не существуют. Вы хотите использовать LEFT JOIN в таблице "job" следующим образом:

SELECT e.id, e.companyName, ee.emailAddress, ee.firstName, ee.surname 
FROM employer as e
  JOIN country ON country.iso2=e.countryISO2FK
  JOIN employerUser as ee ON ee.employerIDFK=e.id
  LEFT JOIN job as j ON e.id=j.employerIDFK 
WHERE ee.originalUser=1 
  AND country.iso2='GB' 
  AND (e.regionCodeFK ='GTL' AND e.regionCodeFK = re.code OR e.regionCodeFK ='' OR e.city ='' ) 
  AND e.status=1 AND e.isActive=1  
  AND j.employerIDFK IS NULL
+2
источник

Посмотрите другие вопросы по меткам или Задайте вопрос