gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-11-29 14:13:39 26 4
gpt4 key购买 nike

所以我有一个名为“HoldingQueue”的表,我想将两行与两个值进行比较,并返回与这两个值都不匹配的每一行。以下是内容示例:

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

查询:

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

这仅返回“3PX1 | Test2” - 我希望它返回“1PX1 | Test”以外的所有内容 - 所以“2PX1 | Test”也应该返回。

有什么想法吗?有点把头撞到墙上了。

编辑:好的,所以它正在使用 OR 处理小数据集...但我刚刚意识到我遇到的问题。我试图拉出“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 表中的任何内容都不匹配的任何项目。这做到了。将把 Sergey Kudriavtsev 标记为答案,因为他确实正确回答了我最初的问题(遗漏了我面临的大部分问题)

最佳答案

将查询中的 AND 更改为 OR,这样就会是

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

关于mysql - 比较 MySQL 中两个表中的两行,仅显示负结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13052177/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com