gpt4 book ai didi

mysql - 根据多列的条件从 SELECT 中删除结果

转载 作者:行者123 更新时间:2023-11-29 10:51:50 25 4
gpt4 key购买 nike

所以我有这个产品提要

id man sup product
1 1 1 MacBook
2 1 2 iMac
3 2 1 Windows
4 2 2 Office

然后与制造商进行表

id manufacturer
1 Apple
2 Microsoft

和供应商

id supplier
1 TechData
2 Westcoast

然后,由于某些原因,我不想显示某个供应商的制造商的产品,即:

id man sup comment
1 2 1 TechData aren't allowed to sell Microsoft
2 1 2 hide all Apple products from Westcoast

有没有一种方法,在纯 SQL 中,只显示通过我的过滤器的产品,在本例中是 MacBook 和 Office?我相信这只是一个WHERE NOT (x AND y),因为结果将列出剩余的组合。

非常感谢!

最佳答案

这只是 Return row only if value doesn't exist 的变体,除非您要加入两列。

SELECT p.product, m.manufacturer, s.supplier
FROM products AS p
JOIN manufacturers AS m ON m.id = p.man
JOIN suppliers AS s ON s.id = p.sup
LEFT JOIN filter AS f ON p.man = f.man AND p.sup = f.sup
WHERE f.id IS NULL

DEMO

关于mysql - 根据多列的条件从 SELECT 中删除结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43599598/

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