我在不同的产品表中有两列。
tblproduct1.partno
是旧产品列表
tblproduct2.partno2
是一个新的
两个partno
列应该具有相同的型号,但它们没有。
执行以下查询时,在比较两个表的计数时,我得到大约300个不匹配的型号。 tblproduct2
有1955条记录,下面的查询是1638.我希望它会在1955年返回。
SELECT COUNT(partno)
FROM tblproduct1
INNER JOIN tblproduct2 ON partno = partno2
有没有办法列出不匹配的型号?
答案 0 :(得分:2)
select tblproduct1.partno from tblproduct1
left join tblproduct2 on tblproduct1.partno = tblproduct2.partno2
where tblproduct2.partno2 is null
显示tblproduct1.partno没有匹配的tblproduct2.partno2值
答案 1 :(得分:0)
实际上,stereofrogs查询是正确的。它甚至在表列被定义为'not null'时也可以工作。我怀疑你在运行查询时混淆了两个表。
这是因为 LEFT JOIN总是包含左表中的所有行。如果第二个表没有匹配的条目,它将显示为NULL。
因此,只要您将具有更多行的表作为左(或第一个)表,上述查询就会产生所需的结果。