2010-02-10 66 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