gpt4 book ai didi

sql - 匹配多个表中的列ms sql

转载 作者:行者123 更新时间:2023-12-04 22:33:35 24 4
gpt4 key购买 nike

我是 ms sql 的初学者,我有两个表第一张表有

id param1 indicator1 indicator2
1 a 1 2
2 z 3 4
2 z 7 2
3 a 8 9
4 z 7 9
5 y 9 6

第二张表有

Param  Indicator
a 1
b 2
null 3
null 4

我想要一个能完成这个的结果集:

For each row in table 1

if( param1 is in Param column)

print row from table 1
else
if(indicator1 in indicator column_
print row from table 1
if(indicator2 in indicator column)
print row from table 1

因此生成的数据集将是

id param1 indicator1 indicator2
1 a 1 2
2 z 3 4
2 z 7 2
3 a 8 9

我想要一个更高效的解决方案

select distinct id, param1, indicator1, indicator2 
from table1 t1, table2 t2
where param1= param or indicator1 = indicator or indicator2 = indicator

最佳答案

代替 Join 检查是否存在,使用性能更好的 EXISTS

SELECT *
FROM table1 t
WHERE EXISTS (SELECT 1
FROM table2 s
WHERE t.param1 = s.Param
OR t.indicator1 = s.Indicator
OR t.indicator2 = s.Indicator)

关于sql - 匹配多个表中的列ms sql,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31453820/

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