[英]SQL Query not giving the desired result
我有兩張桌子
tbl_message
id | user_id | user_name |message | society_id 1 -- 252----- Shubham----- HeyHi--------- 3 2 -- 252----- Shubham----- HeyHi--------- 3 3 -- 250----- Rahul---------- HeyHi--------- 3 4 -- 251----- Sachin--------- HeyHi--------- 3
tbl_submessage
id | post_id | user_id | submessage 1-----1----------252---------Hi- 2-----1----------252---------Hi- 3-----1----------253---------Hi- 4-----1----------253---------Hi- 5-----1----------253---------Hi- 6-----2----------254---------Hi- 7-----2----------254---------Hi-
我必須計算表tbl_submessage中其post_id = tbl_message中消息ID的子消息數 。
基本上,tbl_message 包含論壇的帖子,而tbl_submessage包含在該帖子中進行的對話 。
我嘗試了以下查詢。
SELECT tk.*,COUNT(tp.id) FROM tbl_message tk,tbl_submessage tp WHERE tk.society_id=3 and tk.id=tp.post_id;
該查詢正在返回
id | user_id | 用戶名|消息| society_id | COUNT(tp.id)
1-252 ----- Shubham ----- HeyHi --------- 3 ----------- 7
我想要的是
id | user_id | 用戶名|消息| society_id | 計數
1-252 ----- Shubham ----- HeyHi --------- 3 --------- 5
2-252 ----- Shubham ----- HeyHi --------- 3 --------- 2
3-250 ----- Rahul ---------- HeyHi --------- 3 --------- 0
4-251 ----- Sachin --------- HeyHi --------- 3 --------- 0
請幫我查詢。
您的查詢存在兩個問題:您需要將聯接更改為左聯接,以獲取沒有子消息的用戶,並添加GROUP BY以按用戶提供結果。 嘗試這個:
SELECT tk.*, COUNT(tp.id)
FROM tbl_message tk
LEFT JOIN tbl_submessage tp
ON tp.post_id = tk.id
WHERE tk.society_id=3
GROUP BY tk.id
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.