php mysql比较两列返回不匹配

时间:2010-02-10 11:44:46

标签: php sql mysql compare

我在不同的产品表中有两列。

tblproduct1.partno是旧产品列表

tblproduct2.partno2是一个新的

两个partno列应该具有相同的型号,但它们没有。

执行以下查询时,在比较两个表的计数时,我得到大约300个不匹配的型号。 tblproduct2有1955条记录,下面的查询是1638.我希望它会在1955年返回。

SELECT COUNT(partno)
FROM tblproduct1
  INNER JOIN tblproduct2 ON partno = partno2

有没有办法列出不匹配的型号?

2 个答案:

答案 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。

因此,只要您将具有更多行的表作为左(或第一个)表,上述查询就会产生所需的结果。