簡體   English   中英

查詢時使用NOT IN和NOT EQUAL

[英]Using NOT IN with NOT EQUAL when querying

我有一個名為“ Positions”的表,我試圖從中獲取特定信息。 舉個例子:

Position ID           Person

4                     Joe
5                     Mary
4                     Mary
6                     Shawn
4                     Brad
4                     Ken
8                     Ken

請注意,一個人可以有多個職位ID。

我需要提取位置ID等於4的人員的所有名稱,但他們也不能具有除4以外的其他位置ID。

我嘗試創建位置ID不同於4的所有用戶的列表,然后說我不希望該列表中的任何用戶。 邏輯是,這將刪除沒有ID為4的人員,以及那些擁有ID為4但ALSO的職位ID為非4的用戶。注意,這是在MySQL中,我是新手,但我可以想象要遵循的SQL邏輯。

SELECT

Person

FROM

Positions

WHERE Person NOT IN

(
SELECT Person

FROM
Positions

WHERE
Position_ID <> 4
)

我希望結果只顯示喬和布拉德

無論我做多簡單,我都不會獲得任何回報。

首先,您正在對“人員”進行選擇。 您有兩列名為Position Id和Person。 從那開始

SELECT * FROM Positions WHERE person NOT IN (SELECT person WHERE position_id != 4);

我只會使用聚合

select person
from positions
group by person
having min(position) = max(position) and  -- all positions are the same
       min(position) = 4;

暫無
暫無

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

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