gpt4 book ai didi

sql - 选择查询所需的性能

转载 作者:行者123 更新时间:2023-12-03 17:17:51 27 4
gpt4 key购买 nike

考虑以下Table_A和Table_B:

Table_A
ID |A_Field_1
1 |10
2 |11
3 |12


Table_B:

ID  |B_Field_1
1 |500
1 |510
1 |520
2 |550
3 |530


我需要编写一个查询,以获取 IDA_Field_1Table_B中没有520或530的 B_Field_1值的值。

输出:

ID  |A_FIELD_1
2 |11


我当前的查询如下:

SELECT ID,A_Field_1 
from Table_A
where ID not in (select ID from Table_B where B_Field_1 in (520,530))


这可行,但有人可以提供更好的基于性能的查询;与上面的查询一样, select ID from Table_B where B_Field_1 in (520,530)内部查询很大并且对应于一个增长的表。

最佳答案

你也可以这样尝试

SELECT
Id
, A_Field_1
FROM TABLE_A A
INNER JOIN
(
SELECT
Id
, COUNT(CASE WHEN B_Field_1 IN (520, 530) THEN 1 END) AS ValidId
FROM Table_B
GROUP BY Id
) b ON A.Id = b.Id AND b.ValidId < 1

关于sql - 选择查询所需的性能,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17397972/

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