SQL服务器 - 选择列有两个匹配的其他列

问题描述:

我有一个表像这样:SQL服务器 - 选择列有两个匹配的其他列

columna int 
columnb int 

一些样本数据:

columna columnb 
    1  1 
    1  2 
    1  3 
    2  1 
    2  2 
    2  4 
    3  1 
    3  3 
    3  7 
    4  3 
    5  2 
    5  3 

我想选择columna其中对于columna相同的值有columnb中的1和3。

所以我对抽样结果上面应该是:

1 
3 

我已经尝试了一些东西,但不能得到我想要的东西,有人可以帮助我在这里。

+0

你能来请您到目前为止已经试过什么更具体的? – EGOrecords

您可以使用intersect运算符,它会返回由两个输入查询输出的不同行。

所以第一个查询应该是从具有columnb = 1记录columna值,第二个 - 从具有columnb = 3记录columna值,然后两个相交查询的结果。

select columna 
from your_table 
where columnb = 1 

intersect 

select columna 
from your_table 
where columnb = 3 

SELECT DISTINCT(t1.columnA) 
FROM Table_Name t1 
INNER JOIN Table_Name t2 ON t1.columnA = t2.columnB