我有一个带有列的表:conditional1,conditional2,data。如果其中任何一行还包含conditional2 = value2,则我需要返回其中conditional1 = value1的所有行。我怎样才能做到这一点?
编辑:关于我在问什么有些困惑。
如果您有专栏
`conditional1 |条件2 |数据
A | A |一种
A | B | A`
如果conditional1 = A和conditional2 = B,我想返回两行
编辑2:仍然有些混乱。
这是另一个示例:
条件1 |条件2 |数据
1 | 1 |一种
1 | 2 |乙
2 | 1 | C
2 | 2 | d
如果conditional1 = 1和conditional2 = 1,则应返回
1 | 1 |一种
1 | 2 |乙
如果conditional1 = 2和conditional2 = 1,则应返回
2 | 1 | C
2 | 2 | d
如果conditional1 = 2和conditional2 = 2,则应返回
2 | 1 | C
2 | 2 | d
如果conditional1 = 2和conditional2 = 3,则不应返回任何行。
最佳答案
select *
from tbl A
where conditional1 = 'A'
and exists (
select * from tbl B
where B.conditional1 = 'A' and B.conditional2 = 'B')
或更MySQL友好的版本
select * from tbl
where conditional1 in
(
select conditional1
from tbl
where conditional1 = 'A' and conditional2 = 'B'
)