簡體   English   中英

MYSQL:如何從 2 個表中進行計數和分組,然后加入到第 3 個表

[英]MYSQL: How to count and group from 2 tables and then join to the 3rd table

有人能幫助我嗎? 我想計算不超過一周的 2 個表(comments_table 和 comment_replies)中“用戶名”字段的所有出現次數。 得到結果后,我現在想從“users”表中獲取每個用戶名的“profile_image”。

comment_table 看起來像這樣 評論表

下面是 comment_replys 表

comment_replys 看起來像這樣: 評論回復

通過編寫這個查詢,我已經完成了 80% 的工作:

    SELECT username, COUNT(*) AS total
FROM (
    SELECT username FROM comments_table WHERE date_time > NOW() - INTERVAL 1 WEEK
    UNION ALL
    SELECT username FROM comment_replies WHERE date_time > NOW() - INTERVAL 1 WEEK
) table1 
GROUP BY username ORDER BY total DESC

通過提供以下輸出,它運行得非常好:

輸出

這是我的問題:我想將此結果加入“users”表,以便我可以獲得每個用戶名的“profile_image”。 “用戶”表將用戶名列作為唯一列:

在此處輸入圖片說明

我知道我可以使用用戶名列加入,但我被卡住了。 請幫忙。 我在 Stock Overflow 上搜索過,找到了這個這個,但他們沒有解決我的情況。

您只需要在查詢中加入用戶表:

SELECT u.username,u.profile_image,t.total
FROM `users` u
INNER JOIN (
  SELECT username, COUNT(*) AS total
  FROM (
    SELECT username FROM comments_table WHERE date_time > NOW() - INTERVAL 1 WEEK
    UNION ALL
    SELECT username FROM comment_replies WHERE date_time > NOW() - INTERVAL 1 WEEK
  ) table1 
  GROUP BY username) t
ON u.username=t.username
ORDER BY t.total;

我更正了關鍵字 INNER 的拼寫。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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