gpt4 book ai didi

sql - 如何从一个表中选择另一表中不存在的所有记录?

转载 作者:行者123 更新时间:2023-12-01 16:16:19 25 4
gpt4 key购买 nike

table1 (id, name)
table2 (id, name)

查询:

SELECT name   
FROM table2
-- that are not in table1 already

最佳答案

SELECT t1.name
FROM table1 t1
LEFT JOIN table2 t2 ON t2.name = t1.name
WHERE t2.name IS NULL

:这里发生了什么?

A:从概念上讲,我们从 table1 中选择所有行,并且对于每一行,我们尝试在 table2 中查找具有相同值的行对于 name 列。如果没有这样的行,我们只需将该行的结果的 table2 部分留空即可。然后,我们通过仅选择结果中不存在匹配行的那些行来限制我们的选择。最后,我们忽略结果中除 name 列(我们确信存在的列,来自 table1)之外的所有字段。

虽然它可能不是在所有情况下都可能是性能最高的方法,但它基本上应该适用于尝试实现 ANSI 92 SQL 的每个数据库引擎。

关于sql - 如何从一个表中选择另一表中不存在的所有记录?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2686254/

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