我有类似的表结构,如下所示
现在我想写一个查询(不使用内部查询)并查找所有那些有条件的人 (值1 = A且值2 = B)和(值1 = B且值2 = A)。
表示反之亦然的情况,其中一个数字同时具有值1和值2,具有A和B.
因此,对于给定的情况,我的查询输出将为1和4。
答案 0 :(得分:2)
请尝试此查询:
select t1.NUMBER from mytable t1
join mytable t2 on t1.NUMBER = t2.NUMBER
where t1.Value1 = 'A' and t1.Value2 = 'B' and t2.Value1 = 'B' and t2.Value2 = 'A'
答案 1 :(得分:1)
SELECT NUMBER FROM MYTABLE WHERE value1 = 'A' and value2 = 'B'
INTERSECT
SELECT NUMBER FROM MYTABLE WHERE value2 = 'A' and value1 = 'B';
答案 2 :(得分:1)
如果您不想重复重复的行,请执行以下操作:
mysql> select a.* from tbl_so_q23676640 a
-> join tbl_so_q23676640 b
-> on a.v1 = b.v2 and a.v2 = b.v1
-> where a.n=b.n
-> group by a.n, a.v1, a.v2
-> ;
+------+------+------+
| n | v1 | v2 |
+------+------+------+
| 1 | a | b |
| 1 | b | a |
| 4 | a | b |
| 4 | b | a |
+------+------+------+
4 rows in set (0.00 sec)