我有这个问题:
SELECT
EnrollmentID, MarketID
FROM
Contracts AS CO
LEFT JOIN
Customers AS C ON C.EnrollmentID = CO.BatchID AND MarketID = 'AB'
WHERE
C.EnrollmentID IS NULL
在这里,我有一个问题,在此查询中,查询可能会验证左连接中MarketID = 'AB'
的数据,因为根据WHERE
条件?
我收到的EnrollmentIDs
和MarketIDs
的结果都是NULL
。
答案 0 :(得分:0)
注意:LEFT JOIN关键字会返回左表中的所有行(合同),即使右表(客户)中没有匹配项。 < / p>
现在,如果你想选择正确的表列,并且右表中没有匹配的数据,比如。
SELECT CO.EnrollmentID, CO.MarketID ,C.Some_col
FROM Contracts AS CO
LEFT JOIN Customers AS C ON C.EnrollmentID = CO.BatchID
所以, C.Some_col 列将获得右表中没有匹配行的所有空值。我认为这就是为什么你得到空值的原因 MarketIDs和EnrollmentIDs。
希望,这对你有所帮助。