2012-08-05 24 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