我有一個這樣的表...取單ID的記錄不僅沒有任何其他
oid id
35 1
43 1
46 1
43 2
49 2
我ID = 1現在我想pnly那些只屬於1沒有任何其他記錄IDS。
即O/P - 35,46
我不需要的oid = 43個BCZ它屬於2也。
我不知道如何在stackoverflow表中寫下我的問題,所以請忽略我錯誤的詢問方式。
感謝
我有一個這樣的表...取單ID的記錄不僅沒有任何其他
oid id
35 1
43 1
46 1
43 2
49 2
我ID = 1現在我想pnly那些只屬於1沒有任何其他記錄IDS。
即O/P - 35,46
我不需要的oid = 43個BCZ它屬於2也。
我不知道如何在stackoverflow表中寫下我的問題,所以請忽略我錯誤的詢問方式。
感謝
select count(oid), oid from table
where id = 1
group by oid
having count(oid) = 1
也是我需要的那些記錄,ID = 1 SO它應該是... SELECT COUNT(ID),OID,從表ID其中,ID = 1 通過編號 組計數(id)= 1 –
'WHERE id = 1'? – Aquillo
@Aquillo謝謝我錯過了那個部分 –
這裏的另一種方式,
SELECT oid
FROM tableName
GROUP BY oid
HAVING COUNT(DISTINCT id) = 1 AND -- counts the number of ID for OID
MAX(ID) = 1 -- checks if the value of ID is equal to 1
輸出
╔═════╗
║ OID ║
╠═════╣
║ 35 ║
║ 46 ║
╚═════╝
SELECT *
FROM TABLE_NAME
WHERE id = 1
AND oid NOT IN (SELECT DISTINCT oid FROM TABLE_NAME where id != 1)
爲什麼你不想ID = 43? –
所以基本上你想選擇表中不重複的行(關於oid)? –
@sharif因爲43是表中的一個重複的OID –