我有兩個表,第一個表包含帶唯一ID和關鍵字的數字,第二個表包含通過唯一ID鏈接回第一個表的數字(在CAMPAIGN
列中)。我想從第一個表格中獲得每個數字,並計算他們的唯一ID(在CAMPAIGN
中)在第二個表格中顯示的次數(即:每個數字附加了多少個關鍵字)。從第一個表中選擇全部,在第二個表中計數ID實例
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
從理論上講,你需要一個小組在最後 – Skynet