我有两个表,Table1(新闻)和Table2(订阅者)。
表1:id,news_title
表2:id,news_id,user_id
Table1
id | news_title
--------------
1 | News 1
2 | News 2
3 | news 3
Table2
id | news_title_id | user_id
----------------------------
1 | 1 | 1
2 | 1 | 2
3 | 2 | 3
我需要这样的查询结果。
news_title | subscribers
------------------------
News 1 | 2
News 2 | 1
News 3 | 0
任何帮助?
答案 0 :(得分:3)
带有COUNT(*)
的简单汇总LEFT JOIN
将在此处完成工作。 LEFT JOIN
和COUNT(*)
(而非COUNT(user_id)
)用于确保零订阅者的标题仍会返回一行。
SELECT
news_title,
COUNT(Table2.*) AS subscribers
FROM Table1 LEFT JOIN Table2 ON Table1.id = Table2.news_title_id
GROUP BY news.title