SQL:仅选择一列中的数据,其中第二列中的一个值为x

时间:2017-08-09 09:57:29

标签: sql database

我遇到了一个问题,我无法在这个例子中解释这个问题: 所以有两列如:

X     Y
A     2
A     1
A     3
B     3
C     2
A     1
D     2
B     1
B     3
C     1
A     1
D     3
D     1

现在我想只选择X中的数据,其中Y中的一个值是2。 所以我的输出应该如下:

    X     Y
    A     2
    A     1
    A     3
    C     2
    A     1
    D     2
    C     1
    A     1
    D     3
    D     1

因为X = B的Y = 2并不存在于主表中。 我的问题是这个操作的查询是什么?我曾尝试过CASE WHEN,但有些事情并没有为我解决。

2 个答案:

答案 0 :(得分:1)

尝试

SELECT X FROM Table WHERE X IN (SELECT X FROM Table WHERE Y=2)

或尝试

SELECT t1.X FROM Table t1 
INNER JOIN Table t2 ON t1.X = t2.X
WHERE t2.Y = 2

答案 1 :(得分:0)

尝试子查询:

SELECT X FROM table WHERE X IN (SELECT X FROM table WHERE Y = 2);