gpt4 book ai didi

MySQL:表 1 中的 SELECT 字段不存在于表 2 中

转载 作者:行者123 更新时间:2023-11-29 06:01:56 24 4
gpt4 key购买 nike

简化后的数据库如下所示:

CREATE
TABLE vinyls (
id_vinyl INT(11) UNSIGNED NOT NULL AUTO_INCREMENT,
PRIMARY KEY (id_vinyl),
UNIQUE KEY id_vinyl (id_vinyl));

CREATE
TABLE orders (
id_order INT(10) UNSIGNED NOT NULL,
PRIMARY KEY (id_order),
UNIQUE KEY id_order (id_order));

CREATE
TABLE orders_vinyls (
id_order INT(10) UNSIGNED NOT NULL,
id_vinyl INT(11) UNSIGNED NOT NULL,
PRIMARY KEY (id_order, id_vinyl),
UNIQUE KEY id_vinyl (id_vinyl),
FOREIGN KEY (id_order) REFERENCES orders (id_order) ON DELETE CASCADE,
FOREIGN KEY (id_vinyl) REFERENCES vinyls (id_vinyl) ON DELETE CASCADE);

它被设计成一个订单包含多个乙烯基 - 表格 orders_vinyls。我需要获得可供客户使用的乙烯基唱片。这些是 id_vinyl 不在表 orders_vinyls 中的那些。而且可能会出现这样的情况当 orders_vinyls 为空时,这给我带来了一些困难。

非常感谢你们的帮助。

更新:例如餐 table 乙烯基:(1)、(2)、(3)、(4)、(5)、(6);

表顺序:(1), (2), (3)

表 orders_vinyls:(1, 1), (1, 2), (2, 3), (3, 4)

所以我需要获得 id_vinyl 5 或 6 的乙烯基,因为它们不在表 orders_vinyls 中。

最佳答案

如果您想要选择那些在任何订单中都不存在的乙烯基,那么一种选择是使用 NOT EXISTS:

SELECT v.*
FROM vinyls AS v
WHERE NOT EXISTS (SELECT 1
FROM orders_vinuls AS ov
WHERE ov.id_vinyl = v.id_vinyl)

这也适用于表 orders_vinuls 为空的情况。

关于MySQL:表 1 中的 SELECT 字段不存在于表 2 中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44278503/

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