gpt4 book ai didi

SQL,检查行是否在另一个表中

转载 作者:行者123 更新时间:2023-12-05 00:05:22 24 4
gpt4 key购买 nike

我有两个表,StockWarehouse

我需要获取所有仓库中可用的元素。

举个例子:

Stock Table:

ItemID WarehouseID ItemAmount
-------------------------------------------
1043 1 20
1043 2 2
1043 3 16
1043 4 17
1044 1 32
1044 2 12
1044 4 7
1055 2 6

Warehouse Table:

WarehouseID WarehouseName
-------------------------------
1 Name1
2 Name2
3 Name3
4 Name4

对于示例,结果应该是项目 1043,因为它在所有仓库中都可用,这与其他仓库不同。

我没有找到解决方案,有人可以帮助我吗?

最佳答案

您还可以使用 NOT EXISTS 来使用这个“双重否定”查询:

SELECT DISTINCT s.ItemID
FROM StockTable s
WHERE NOT EXISTS
(
SELECT 1 FROM Warehouse w
WHERE NOT EXISTS(SELECT 1 FROM StockTable s2
WHERE w.WarehouseID = s2.WarehouseID
AND s.ItemID = s2.ItemID)
)

Demo fiddle

这种方法看起来比较冗长,但它有一些好处:

  • 如果规则变得更复杂,您可以轻松更改它
  • 您可以删除 DISTINCT 以查看所有行
  • 您可以添加所有列,因为未使用 GROUP BY
  • 它没有空值问题

关于SQL,检查行是否在另一个表中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30370127/

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