我試圖讓所有用戶在profile_values中沒有爲fid = 13設置值或根本沒有值。我猜這有一個簡單的解決方案,但我只是沒有看到它。任何幫助或正確的方向點非常感謝。MySQL查詢 - 幫助選擇
(在表用戶和profile_values從Drupal的都是。)
簡體值:
uid name fid value
1 user1 1 foo
1 user1 2 foo
2 user2 12
2 user2 13 1265662514
3 user3 NULL NULL
4 user4 NULL NULL
我是想:
SELECT u.uid, u.name, pv.fid, pv.value
FROM users u
LEFT JOIN profile_values pv ON pv.uid = u.uid
WHERE u.status != 0
AND (pv.fid != 13 OR pv.fid IS NULL)
GROUP BY u.uid
uid name fid value
1 user1 1 foo
2 user2 12 foo
3 user3 NULL NULL
4 user4 NULL NULL
我的問題是user2的那些不應該在那裏,因爲它具有fid值= 13
感謝所有令人難以置信的快速和合格的答案,歡呼!
這不起作用。看看我和安東尼的討論 – zerkms 2010-02-08 23:44:11
實際上,這似乎與OR(pv.fid = 13 AND pv.value ='')結合起來......除非我忽略了某些東西 – Borgenk 2010-02-08 23:53:38
@Borgenk:爲什麼不是我的? ;-)你有沒有嘗試看看這個提議解釋? ;-) – zerkms 2010-02-09 03:10:30