[英]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.