Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/60.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 - Fatal编程技术网

Mysql SQL中两个选择之间的差异

Mysql SQL中两个选择之间的差异,mysql,sql,Mysql,Sql,我有一个数据表: -------------------- ID | user | Value -------------------- 1 | 1 | 1 -------------------- 2 | 1 | 2 -------------------- 3 | 2 | 3 -------------------- 4 | 2 | 2 -------------------- 5 | 3 | 4 --------------------

我有一个数据表:

--------------------
ID |  user | Value
--------------------
1  |  1    | 1
--------------------
2  |  1    | 2
--------------------
3  |  2    | 3
--------------------
4  |  2    | 2
--------------------
5  |  3    | 4
--------------------
6  |  3    | 2
--------------------
我想选择值与用户1不同的所有行,因此结果将是IDS3值为3,5值为2的行

我会做这样的事情,我称之为

SELECT * FROM table WHERE user = 1
并从用户1获取所有行。我会把它叫做B

SELECT * FROM table WHERE user != 1
并获取所有其他行。然后我会比较它们,其中A.value!=B.价值

我被困在如何将所有东西合并在一起

请帮忙

试试这个:

SELECT * 
FROM table
WHERE value NOT IN ( SELECT value FROM table WHERE user = 1)

从表中选择*,其中值不在“从表中选择值”,其中用户=1

关系运算符确实是“差”,Oracle有关键字减号,标准SQL有关键字,但例如

遗憾的是,MySQL没有任何这样的操作符,您必须使用其他SQL结构,例如不在:


OP在问题中提到了期望的结果。因此,结果将是IDS3值为3,5值为2的行。我认为OP写得不正确,5的值是2,应该是,5的值是4,因为第5行有值=4@MarkByers据我所知,他希望从表中获取所有数据,其中值不等于用户从OP获得的任何值:因此结果将是ids3值为3,5值为2的行
SELECT value 
  FROM table 
EXCEPT
SELECT value 
  FROM table 
 WHERE user = 1;
SELECT value 
  FROM table
 WHERE value NOT IN ( SELECT value
                        FROM table
                       WHERE user = 1 );