2012-09-11 21 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)內;這可能會影響它嗎? –