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