我想从数据库中获取行。我使用以下查询:
select * from Table where columnB = '1' AND '3';
我希望得到column A
具有相同值且columnB
为1和3的行。我不想要columnA
的任何一行。
我想根据A列中的值检索成对的行。不应该有一行具有列A的值
答案 0 :(得分:1)
如果我理解正确
SELECT columnA, columnB
FROM Table
WHERE columnA = 'SOME_VALUE'
AND columnB IN ('1', '3')
答案 1 :(得分:0)
如果你想要 B ='1'的所有行,那么还有另一行B ='3'并且两行具有相同的A 值,以及 all B ='3'的行使得还有另一行B ='1'并且两行具有相同的A 值,那么这样的东西应该有效:
select * from Table as t1
where columnB = '1'
and exists (
select * from Table as t2
where t2.columnA = t1.columnA
and t2.columnB = '3'
)
UNION
select * from Table as t3
where columnB = '3'
and exists (
select * from Table as t4
where t4.columnA = t3.columnA
and t4.columnB = '1'
)
您的输出将是这样的:
| ColumnA | ColumnB |
| foo | 1 |
| foo | 3 |
| bar | 1 |
| bar | 3 |
| cat | 1 |
| cat | 3 |