我有两个表,第一个表包含具有唯一 ID 和关键字的数字,第二个表包含通过唯一 ID 链接回第一个表的数字(在CAMPAIGN
列中)。我想从第一个表中获取每个数字,并计算其唯一 ID(in CAMPAIGN
)在第二个表中出现的次数(即:每个数字附加了多少关键字)。
CAMPAIGNS SUBSCRIBERS
---------------------------------- --------------------------------------
ID | NUMBER | KEYWORD | | ID | NUMBER | CAMPAIGN |
---------------------------------- --------------------------------------
1 | +1222222222 | pizza | | 22 | 555-333-222 | 2 |
---------------------------------- --------------------------------------
2 | +1222222222 | burger | | 21 | 222-333-222 | 2 |
---------------------------------- --------------------------------------
3 | +1444444444 | pie | | 33 | 333-111-111 | 1 |
----------------------------------
4 | +1111111111 | chicken |
我需要的结果是:
----------------------------------------
NUMBER | KEYWORD | COUNT |
----------------------------------------
+1222222222 | pizza | 1 |
----------------------------------------
+1222222222 | burger | 2 |
----------------------------------------
+1444444444 | pie | 0 |
----------------------------------------
+1111111111 | chicken | 0 |
我不太熟悉,JOIN
所以UNION
我一直在尝试和阅读文档,但我不太清楚如何COUNT
使用它们来实现。
这是我到目前为止所拥有的,但每次我尝试添加COUNT
函数时,我都会遇到错误并且无法弄清楚:
SELECT * FROM `campaigns` LEFT JOIN `subscribers` ON `campaigns`.id = `subscribers`.campaign;
编辑 在下面发布的查询有效,但它不包括计数为零的其他活动
SELECT c.number,c.id,c.keyword,COUNT(s.id) AS count FROM campaigns AS c LEFT JOIN subscribers AS s ON c.id = s.campaign GROUP BY s.campaign ORDER BY c.id ASC