而不是键入我正在进行的查询的每个值,我可以匹配另一个表中的列吗?

时间:2018-03-08 18:08:46

标签: sql sql-server azure-sql-database

SQL Server:我正在尝试将Table1中的行与data的{​​{1}}和popular_data列中的值匹配。

Table2

无论如何将其简化为ColumnY和ColumnZ而不输入所有值?我的实际查询有超过500个值,所以它太过分了。

SELECT * 
FROM Table1 
WHERE ColumnX IN (872510, 872511, 872512, 872513, 872514,
                  872515, 879529, 879530, 879959, 
                  879960, 879961, 879962, 879963)

2 个答案:

答案 0 :(得分:0)

如果我理解正确,应该这样做;

SELECT * FROM Table1 WHERE ColumnX in (

SELECT DISTINCT ColumnY FROM Table2 UNION

SELECT DISTINCT ColumnZ FROM Table2
)

答案 1 :(得分:0)

SELECT t1.* 
FROM Table1 t1 
join table2 t2 
  on t1.ColumnX = t2.data 
  or t1.ColumnX = t2.popular_data