0
我想顯示一個不存在於另一個表中的項目列表。例如:如何正確使用MySQL的NOT EXISTS?
usertable:
uid
name
email
othertable:
uid
我試圖篩選出已經存在於其他表,所以當我顯示用戶表,它只會顯示不在othertable的用戶。
我想顯示一個不存在於另一個表中的項目列表。例如:如何正確使用MySQL的NOT EXISTS?
usertable:
uid
name
email
othertable:
uid
我試圖篩選出已經存在於其他表,所以當我顯示用戶表,它只會顯示不在othertable的用戶。
不存在於mysql中是完全不同於你想要做的事情。 更新:這是不正確的!(謝謝指出)
我知道你想選擇所有使用的記錄,但不能在其他的,對吧?
SELECT * FROM usertable WHERE uid NOT in (SELECT uid FROM othertable)
UPDATE在要檢查所有的字段行中,不僅ID,您可以使用類似的情況:
SELECT * FROM usertable
WHERE field1, field2, fieldN NOT IN
(SELECT field1, field2, fieldN FROM othertable)
這將是一個左簡單的JOIN:
SELECT u.*
FROM usertable u
LEFT JOIN othertable o USING (uid)
WHERE o.uid IS NULL
如果你想擁有NOT EXISTS
:
SELECT *
FROM usertable u
WHERE NOT EXISTS (
SELECT *
FROM othertable o
WHERE o.uid = u.uid
)
可能重複的[MySQL「NOT IN」查詢](http://stackoverflow.com/questions/1519272/mysql-not-in-query) – CanSpice 2011-12-13 23:18:48
這是http://stackoverflow.com/的確切副本問題/ 915643/select-where-exist – 2011-12-13 23:23:02