gpt4 book ai didi

sql - 如何查找一个表中在另一表中没有对应行的行

转载 作者:行者123 更新时间:2023-12-03 05:32:05 25 4
gpt4 key购买 nike

两个表之间存在 1:1 关系。我想查找表 A 中在表 B 中没有对应行的所有行。我使用以下查询:

SELECT id 
FROM tableA
WHERE id NOT IN (SELECT id
FROM tableB)
ORDER BY id desc

id 是两个表中的主键。除了主键索引之外,我还在 tableA(id desc) 上有一个索引。

使用 H2(Java 嵌入式数据库),这会导致对 tableB 进行全表扫描。我想避免全表扫描。

如何重写此查询以快速运行?我应该使用什么索引?

最佳答案

select tableA.id from tableA left outer join tableB on (tableA.id = tableB.id)
where tableB.id is null
order by tableA.id desc

如果您的数据库知道如何进行索引交叉,这只会触及主键索引

关于sql - 如何查找一个表中在另一表中没有对应行的行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1415438/

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