我确信这很明显,但我完全陷入困境,因为我以前从未见过这个。
我的数据集可能会因类别列表而异(总共6个)。一些客户将拥有1或2个其他所有类别6.我试图通过的信息旨在根据客户提供相应信息的所有6个类别。
所以我设置了一个ID(1到6)和Category的简单映射表。我然后加入我的客户数据。我使用的测试数据有1,2,3,5类,虽然我得到6的NULL,但我没有得到4。我应该在类别4上看到一个Null行,因为它不存在于客户数据?
SELECT *
FROM .dbo.Lookup_Category C
LEFT JOIN dbo.Client CL ON C.ID = CL.Category
WHERE CL.ID = 423 OR CL.Category IS NULL
答案 0 :(得分:2)
尝试使用
SELECT *
FROM .dbo.Lookup_Category C
LEFT JOIN dbo.Client CL ON C.ID = CL.Category and ( CL.ID = 423 OR CL.Category IS NULL )
使用左连接中的where作为内连接
答案 1 :(得分:2)
将WHERE
条件移至ON
条款。
WHERE
在 LEFT JOIN
之后执行,并会过滤掉NULL
的{{1}}值。
CL.ID