2010-02-10 67 views
1

我在不同的产品表中有两列。php mysql比较两列返回不匹配

tblproduct1.partno是一个古老的产品列表

tblproduct2.partno2是一个新的

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

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

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

有没有一种方法,我可以列出不匹配的型号?

回答

0

其实stereofrogs查询是正确的。即使在表列被定义为'not null'时,它也可以工作我怀疑当你运行查询时你有两个表混淆了。

这是因为LEFT JOIN始终包含所有来自左侧表格的行。如果第二个表没有匹配的条目,它将显示为NULL。

所以只要你有更多的行作为左(或第一个)表的上述查询将产生所需的结果。

+0

是的,它的工作原理,感谢解释,如何列出空列中的模型?我需要对它们进行比较 – jimsmith 2010-02-10 15:40:41

+0

您可以在查询中添加第二列,以便您可以对比如:select tblproduct1.partno,tblproduct.partName ... all of best – e4c5 2010-02-11 03:08:46

2
select tblproduct1.partno from tblproduct1 
    left join tblproduct2 on tblproduct1.partno = tblproduct2.partno2 
    where tblproduct2.partno2 is null 

显示tblproduct1.partno有没有匹配tblproduct2.partno2值

+0

partno2不为空,它只是不匹配 – jimsmith 2010-02-10 12:57:45

+0

对不起,我可以看到查询的作品感谢您的答案,我问过e4c5,但我会恢复这里的问题:有没有办法看到型号? tblproduct2.partno2返回null – jimsmith 2010-02-10 15:43:29

相关问题