我对以下 SQL 查询有疑问。如您所见,我加入了一些表(candidate_basic,candidate_lang,province_of_candidate,province,degree_of_candidate),然后我将结果与另一个表“professional_experience_basic”加入,但是,查询返回几个实例(例如:它返回两个实例 id_candidate_basic= 55,或者它返回 id_candidate_basic=59 的三个实例)。
我的问题是我只希望查询为每个 id_candidate_basic 返回 1 个实例。也就是说,具有属性“main_job”的实例的值为 1,如果这不可能,则为空。
我试图将AND professional_experience_basic.main_job=1放在 WHERE 子句中,但是,它删除了带有main_job=null的实例。
我觉得我已经接近最终结果,但我在最后的努力中花了很多时间。有谁知道解决方案?提前致谢。
查询:
SELECT DISTINCT
candidate_basic.id_candidate_basic,
candidate_lang.town,
province.name,
degree_of_candidate.id_degree_of_candidate,professional_experience_basic.main_job
FROM (((((candidate_basic
INNER JOIN candidate_lang
ON candidate_lang.id_candidate_basic=candidate_basic.id_candidate_basic)
INNER JOIN province_of_candidate
ON province_of_candidate.id_candidate_basic=candidate_basic.id_candidate_basic)
INNER JOIN province
ON province.id_province=province_of_candidate.id_province)
INNER JOIN degree_of_candidate
ON degree_of_candidate.id_candidate_basic=candidate_basic.id_candidate_basic)
LEFT JOIN professional_experience_basic
ON professional_experience_basic.candidate_id=candidate_basic.id_candidate_basic)
WHERE candidate_basic.candidate_state=2
AND degree_of_candidate.is_main_degree
AND candidate_lang.id_website_lang=1
当前结果:
我想要的结果: