gpt4 book ai didi

SQL 连接 : how to select when value not in a set of values

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

我有两个表,table1 和 table2。表 1 与表 2 是一对多关系(表 1 中的一行映射到表 2 中的多行)。 table2 中有一个字段叫做 code。如果 table2 中的代码值都不等于某组值(比如 1、2 和 3),我想选择 table1 中的值。我不确定如何编写这种连接。
假设 table1 中的主键称为 id,它映射到的外键称为 did。你能告诉我如何写这种连接吗?

最佳答案

这被称为 antijoin .

最简单的实现是:

SELECT * FROM table1
WHERE NOT EXISTS (SELECT 1 FROM table2
WHERE table2.did = table1.id
AND table2.code in (1,2,3))

或者,使用外连接(我不是 100% 确定这会起作用,因为我自己总是使用 NOT EXIST 语法进行反连接):
SELECT  table1.*
FROM table1
LEFT OUTER JOIN
table2
ON table1.id = table2.did
AND table2.code in (1,2,3)
WHERE table2.did is NULL

关于SQL 连接 : how to select when value not in a set of values,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4571871/

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