gpt4 book ai didi

sql - 确保两列仅包含来自同一子查询的有效结果

转载 作者:行者123 更新时间:2023-11-29 12:30:51 24 4
gpt4 key购买 nike

我有下表:

id   symbol_01   symbol_02
1 abc xyz
2 kjh okd
3 que qid

我需要一个查询来确保 symbol_01 和 symbol_02 都包含在有效符号列表中。换句话说,我需要这样的东西:

select * 
from mytable
where symbol_01 in (
select valid_symbols
from somewhere)
and symbol_02 in (
select valid_symbols
from somewhere)

上面的示例可以正常工作,但是用于确定有效交易品种列表的子查询两次都是相同的并且非常大。像示例中那样运行两次会非常低效。

有没有办法在不重复两个相同的子查询的情况下做到这一点?

最佳答案

另一种方法:

select *
from mytable t1
where 2 = (select count(distinct symbol)
from valid_symbols vs
where vs.symbol in (t1.symbol_01, t1.symbol_02));

这假设有效符号存储在表 valid_symbols 中,该表有一个名为 symbol 的列。该查询还将受益于 valid_symbols.symbol

上的索引

关于sql - 确保两列仅包含来自同一子查询的有效结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38633429/

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