使用SQL从DB中的表中获取行

时间:2011-07-23 10:20:54

标签: sql

我想从数据库中获取行。我使用以下查询:

select * from Table where  columnB = '1' AND '3';

我希望得到column A具有相同值且columnB为1和3的行。我不想要columnA的任何一行。

我想根据A列中的值检索成对的行。不应该有一行具有列A的值

2 个答案:

答案 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    |