比较MySQL中两个表的两行,仅显示负面结果



所以我有一个名为" 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";

相关内容

  • 没有找到相关文章

最新更新