簡體   English   中英

SQL查詢沒有給出期望的結果

[英]SQL Query not giving the desired result

我有兩張桌子

  1. 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 
  2. 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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM