我想选择尚未发布职位的用户。
我试过这个:
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
有谁知道我做错了什么?
答案 0 :(得分:2)
您正在使用CROSS JOIN和WHERE
过滤器,这样您就无法找到不存在的项目。您要使用的是'job'表中的LEFT JOIN,如下所示:
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