2012-10-24 70 views
0

所以我有一個名爲「HoldingQueue」的表,我想比較兩行到兩個值,並返回不匹配那兩個行的每一行值。以下是內容的一個例子:比較MySQL中兩個表格中的兩行,只顯示負面結果

* * * * * * * * * * * * 
* ItemCode * Channel * 
* * * * * * * * * * * * 
* 1PX1  * Test  * 
* * * * * * * * * * * * 
* 2PX1  * Test  * 
* * * * * * * * * * * * 
* 3PX1  * Test2 * 
* * * * * * * * * * * * 

和查詢:

SELECT * FROM HoldingQueue WHERE ItemCode<>"1PX1" AND Channel<>"Test"; 

這僅返回「3PX1 | Test2的」 - 在這裏我希望它返回的一切,是不是「1PX1 |測試「 - 所以」2PX1 |測試「也應該返回。

任何想法?在這裏,我的頭撞在牆上。

編輯:好的,所以它使用小數據集使用或...但我只是意識到我遇到的問題。我試圖拉動「ItemCode」和「Channel」來將它與另一個有多個條目的表進行比較,但我現在意識到,因爲該表上有多個條目,所以一切至少有一次限定爲的一組值。

我想我的問題比這更復雜。

編輯#2:知道了...

SELECT Channel, ItemCode FROM HoldingQueue H 
WHERE NOT EXISTS 
(SELECT * FROM SKUList S 
    WHERE 
     H.ItemCode=S.SKU 
     AND 
     H.Channel=S.Channel 
) GROUP BY H.Channel,H.ItemCode; 

我想不匹配從第二SKUList表中有內容的任何項目。這做到了。將迎來謝爾蓋·庫德里亞夫採夫的答案,因爲他沒有正確地回答我最初的問題(即留出多少,我面臨的問題)

回答

1

變化AND到查詢OR,所以這將是

SELECT * FROM HoldingQueue WHERE ItemCode<>"1PX1" OR Channel<>"Test"; 
+0

好,這似乎與小樣本一起工作,但不是我試圖使用的較大數據集。我會更新我的主帖。 – rwhit85