Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/extjs/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Mysql SQL查询,反之亦然_Mysql_Sql_Join - Fatal编程技术网

Mysql SQL查询,反之亦然

Mysql SQL查询,反之亦然,mysql,sql,join,Mysql,Sql,Join,我有类似的表结构,如下所示 现在,我想写一个查询(不使用内部查询),并找到所有具有以下条件的数字 (值1=A和值2=B)和(值1=B和值2=A) 表示数字同时具有值1和值2的a和B的情况,反之亦然 因此,对于给定的情况,我的查询输出将是1和4。如果您不想重复重复的行,以下操作应该可以: SELECT NUMBER FROM MYTABLE WHERE value1 = 'A' and value2 = 'B' INTERSECT SELECT NUMBER FROM MYTABLE WHERE

我有类似的表结构,如下所示

现在,我想写一个查询(不使用内部查询),并找到所有具有以下条件的数字 (值1=A和值2=B)和(值1=B和值2=A)

表示数字同时具有值1和值2的a和B的情况,反之亦然


因此,对于给定的情况,我的查询输出将是1和4。

如果您不想重复重复的行,以下操作应该可以:

SELECT NUMBER FROM MYTABLE WHERE value1 = 'A' and value2 = 'B'
INTERSECT
SELECT NUMBER FROM MYTABLE WHERE value2 = 'A' and value1 = 'B';
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)

如果不想重复重复的行,则以下操作应该可以:

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)
请尝试此查询:

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'
您可以检查结果:

请尝试此查询:

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和4才是正确的结果?@Arnab引用问题:“因此对于给定的情况,我的查询输出将是1和4。”嗯。。。但是MySQL似乎没有
INTERSECT
语法。。。请看问题的“加入”标签;-)为什么你认为只返回1和4才是正确的结果?@Arnab引用了这个问题:“因此对于给定的情况,我的查询输出将是1和4。”嗯。。。但是MySQL似乎没有
INTERSECT
语法。。。请看问题的“加入”标签;-)