一直对此感到困惑。

基本上这是我的声明。

SELECT CandidateID, Town, Candidates.SalaryMin, CandidateExperience, CandidateExperience.divTagExp, PrimarySector, Candidates.SalaryMin, CandidateSalary.divTagSal,
CASE WHEN following.RecID =1
THEN  'block'
ELSE  'none'
END AS divFollow
FROM Candidates
LEFT JOIN CandidateExperience ON CandidateExperience.CandidateExpID = Candidates.CandidateExperience
LEFT JOIN CandidateSalary ON Candidates.SalaryMin >= CandidateSalary.SalaryMin
LEFT JOIN following ON following.RecID = Candidates.CandidateID
AND Candidates.SalaryMin <= CandidateSalary.SalaryMax


这是我的候选人表:



这是我的下表:



这是我的查询结果:



我知道联接有问题,但是我尝试过左,右,内,外,但都不给我想要的东西。

我想要的是,对于候选人中的每个条目,只有一个条目,如果在“跟随”中有匹配的条目,则divFollow字段显示“阻止”,如果没有,则显示“无”。

我想念什么?

谢谢!

更新:

将RecID调整为followingID后的新结果集

最佳答案

SELECT  *,
        CASE
        WHEN    candidateId IN
                (
                SELECT  followId
                FROM    following
                )
                THEN
                'block'
        ELSE
                'none'
        END AS divFollow
FROM    Candidates

10-04 15:55