我有一個列出用戶相冊的表。Mysql:如何檢索其中一個字段不包含來自ENUM的特定值的行的列表
PRIMARY KEY,USER KEY,TYPE和TITLE。
TYPE字段是一個ENUM。
通常每個用戶都有一個類型爲「頭像」的條目,在註冊時自動創建,但它似乎沒有。
我想要一個查詢,可以輸出沒有任何'頭像'類型條目關聯的用戶鍵。
我想這個查詢會做的伎倆:
SELECT * FROM (
SELECT DISTINCT user_key FROM `album` WHERE 1
) a
OUTER JOIN (
SELECT user_key FROM `album` WHERE type = 'avatar'
) b
ON a.user_key = b.user_key
的目標是從表中選擇每個不同的用戶,那麼它有一個「阿凡達」後的每用戶終於做了一個外部聯接爲了僅檢索沒有該條目的用戶。
通過內部連接,我得到了具有此條目的正確用戶列表(這不能解決我的問題),但是使用外部連接時出現語法錯誤。
我是否遇到外連接有問題或者有更明智的方法來獲得我想要的內容?
謝謝。
感謝您的信息,我從來沒有在MySQL之前使用外部JOIN。 我不明白在這種情況下使用LEFT JOIN,因爲我想從同一個表中加入兩個子請求。 如果我只使用沒有左連接的UNION,我會得到相反的結果(用戶具有頭像專輯)。正如我提到的Moe,如果我選擇不是頭像的類型,我會得到其他類型的所有行。我想要的是沒有任何與他們相關聯的包含'頭像'類型的行的用戶,即使他們可以有其他類型相關聯。 – user3803848
@ user3803848:好的,我明白了! ,我會編輯我的答案... –
太棒了,那有效。我沒有想到這種類型的subrequest去除用戶頭像,非常聰明。謝謝。 – user3803848