2012-09-11 19 views
2

加入查询我要加入这两个表在WordPress的

  • 表1:wp_usermeta,我在哪里存储我的用户的上次登录时间
  • 表2:wp_chats,我在哪里的用户之间存储聊天记录

该查询获取登录的用户并将该用户的聊天记录到当前用户。但是,如果该用户没有聊天记录,它将不会返回登录用户。

即使在没有聊天的情况下,我如何使此查询返回所有登录的用户?

SELECT m.user_id, COUNT(c.from_id) as cnt 
FROM wp_chats c 
JOIN wp_usermeta m ON m.user_id=c.from_id 
WHERE m.meta_key='user_last_login' 
AND m.meta_value>=$time 
AND c.to_id=$from_id 
AND c.received=0 
GROUP BY c.from_id; 

http://sqlfiddle.com/#!2/edc6b/1

2,3,4,5,6的用户都登录并应在输出中。用户7未登录且未显示。

然而,只有3,6出现。我怎么能得到所有,但#7在输出?

+1

退房小提琴及以上http://sqlfiddle.com/#!2/edc6b/1 –

回答

3

编辑在拨弄完善查询http://sqlfiddle.com/#!2/edc6b/12

SELECT m.user_id, COUNT(c.from_id) as cnt 
FROM wp_usermeta m 
LEFT JOIN wp_chats c 
    ON m.user_id=c.from_id 
    AND c.received=0 
    AND c.to_id=2 
WHERE m.meta_key='user_last_login' 
AND m.meta_value>=1347305273    
GROUP BY m.user_id; 
+0

是没有做到这一点的意见。 –

+0

根据提供的信息,左连接应该是你的答案。也许如果你创建一个sql fidde,http://sqlfiddle.com/我可以有更好的帮助。 – invertedSpear

+0

查询在$ wpdb-> get_results($ q)内;这可能会影响它吗? –