2012-08-05 28 views
2

我需要幫助。 我有兩個表名爲bkeys (id, bkey, ip, user_id)wp_usermeta(是的,wordpress表,感興趣的領域是user_id,meta_key andmeta_value)。 我需要的是從bkeys中選擇所有行+ meta_value的值,其中鍵是暱稱,因此結果將包含字段bkey,ip和meta_value。 問題是,bkeys表可以有NULL IP和user_ID的(意味着鍵不採取任何用戶還沒有),所以用NULL爲USER_ID行不會查詢選擇像mysql select,如何

SELECT bkeys.bkey, bkeys.ip, wp_usermeta.meta_value 
FROM bkeys 
LEFT JOIN wp_usermeta ON (bkeys.user_id = wp_usermeta.user_id) 
WHERE meta_key='nickname' 

我需要的是所有行都被選中,即使user_id爲空。可能嗎?如果是,如何?

回答

2

嘗試移動meta_key = 'nickname'ON條款:

SELECT bkeys.bkey, bkeys.ip, wp_usermeta.meta_value 
FROM bkeys 
LEFT JOIN wp_usermeta ON wp_usermeta.user_id = bkeys.user_id 
        AND wp_usermeta.meta_key = 'nickname' 

想想LEFT JOIN S作爲兩相濾波:

  • 首先,你嘗試加入一排的ON條件一樣,您加入一個NULLed行
  • 您可以進一步篩選WHERE條件下的聯接或NULLed行。
+0

非常感謝你,它的工作原理 – 2012-08-05 09:39:41