【问题标题】:php mysql compare two columns return mismatchesphp mysql比较两列返回不匹配
【发布时间】:2010-02-10 11:44:45
【问题描述】:

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

tblproduct1.partno 是旧产品列表

tblproduct2.partno2 是一个新的

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

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

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

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

【问题讨论】:

    标签: php sql mysql compare


    【解决方案1】:
    select tblproduct1.partno from tblproduct1
       left join tblproduct2 on tblproduct1.partno = tblproduct2.partno2
       where tblproduct2.partno2 is null
    

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

    【讨论】:

    • partno2 不为空,只是不匹配
    • 对不起,我可以看到查询工作感谢您的回答,我已经问过 e4c5,但我会在这里恢复问题:有没有办法查看型号? tblproduct2.partno2 返回 null
    【解决方案2】:

    其实stereofrogs查询是正确的。即使表列被定义为“非空”,它也可以工作我怀疑您在运行查询时混淆了两个表。

    这是因为 LEFT JOIN 总是包含左表中的所有行。如果第二个表没有匹配的条目,它将显示为 NULL。

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

    【讨论】:

    • 是的,它有效,感谢您的解释,我如何在空列中列出模型?我需要比较它们
    • 您可以在查询中添加第二列,以便进行比较,例如:select tblproduct1.partno, tblproduct.partName ... 一切顺利
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-11-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多