所以我有一个名为" holdingqueue"的表,我想将两个行与两个值进行比较,然后返回与这两个值不匹配的每一行。这是内容的示例:
* * * * * * * * * * * *
* ItemCode * Channel *
* * * * * * * * * * * *
* 1PX1 * Test *
* * * * * * * * * * * *
* 2PX1 * Test *
* * * * * * * * * * * *
* 3PX1 * Test2 *
* * * * * * * * * * * *
和查询:
SELECT * FROM HoldingQueue WHERE ItemCode<>"1PX1" AND Channel<>"Test";
这仅返回" 3px1 | test2" - 我希望它返回所有不是" 1px1 | test"的所有内容 - 因此" 2px1 | test"也应该返回。
有什么想法吗?Kinda将我的头撞在这里的墙上。
编辑:好的,它正在使用或...使用小型数据集,但我只是意识到自己遇到的问题。我正在尝试从具有多个条目的另一个表中拉出" itemcode"one_answers" 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表中的任何东西都不匹配的项目。做到了。将标记Sergey Kudriavtsev的答案,因为他确实正确地回答了我的最初问题(这遗漏了我面临的很多问题)
在查询中将 AND
更改为 OR
,因此将是
SELECT * FROM HoldingQueue WHERE ItemCode<>"1PX1" OR Channel<>"Test";