2 つのテーブルがあります。最初のテーブルには、一意の ID とキーワードを持つ数値が含まれ、2 番目のテーブルには、一意の ID (CAMPAIGN
列内) によって最初のテーブルにリンクされた数値が含まれます。最初のテーブルからそれぞれの数字を取得し、一意の ID ( CAMPAIGN
) が 2 番目のテーブルに表示される回数 (つまり、各数字が関連付けられているキーワードの数) を数えたいと考えています。
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;
EDIT 種類の作品の下に投稿されたクエリですが、カウントがゼロの追加のキャンペーンは除外されます
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