簡體   English   中英

2中的區別在SQL中選擇

[英]Difference between 2 selects in SQL

我有一個數據表:

--------------------
ID |  user | Value
--------------------
1  |  1    | 1
--------------------
2  |  1    | 2
--------------------
3  |  2    | 3
--------------------
4  |  2    | 2
--------------------
5  |  3    | 4
--------------------
6  |  3    | 2
--------------------

我想選擇與用戶1相比值不同的所有行,因此結果將是ID為3(值為3)和5(值為2)的行

我會做這樣的事(會稱之為A)

SELECT * FROM table WHERE user = 1

從用戶1獲取所有行。比我選擇(將其稱為B)

SELECT * FROM table WHERE user != 1

並獲取所有其他行。 而且我會比較它們在WHERE A.value != B.value

我被困在如何將所有東西合並在一起......

請幫忙!

嘗試這個:

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

關系運算符確實是“差異”,Oracle有關鍵字MINUS ,標准SQL有關鍵字EXCEPT例如

SELECT value 
  FROM table 
EXCEPT
SELECT value 
  FROM table 
 WHERE user = 1;

遺憾的是,MySQL沒有任何這樣的運算符,你必須使用其他SQL結構,例如NOT IN <table expression>

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

select * from table where value not in (select value from table where user = 1);

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM