[前][次][番号順一覧][スレッド一覧]

mysql:12696

From: kero <kero <info@xxxxxxxxxx>>
Date: Wed, 01 Feb 2006 20:10:25 +0900
Subject: [mysql 12696] テーブルを結合するSQL

お世話になります。keroといいます。
2つのテーブルを結合して表示したいのですが、うまくいきません。
単純なSQLの問題で、MySQL固有ではないのですがご教示願えませんでしょうか。

テーブル構成は以下のtbl1とtbl2があり、tbl1のkey、tbl2のidが主キーになり、
tbl2.keyがtbl1.keyに関連付けられています。

tbl1
+------+------+
| key  | name |
+------+------+
| aa   | 1234 |
| bb   | 2345 |
| cc   | 3456 |
| dd   | 4567 |
| ee   | 5678 |
| ff   | 6789 |
+------+------+

tbl2
+----+------+
| id | key  |
+----+------+
|  1 | aa   |
|  2 | aa   |
|  3 | aa   |
|  4 | bb   |
|  5 | bb   |
|  6 | cc   |
+----+------+

希望としては以下のような結果(tbl2をkeyでグループ化しておのおのの行数を取得
し、tbl1と結合)を得たいと思っています。
+------+-----------+
| key  | count(id) |
+------+-----------+
| dd   |         0 |
| ee   |         0 |
| ff   |         0 |
| aa   |         3 |
| bb   |         2 |
| cc   |         1 |
+------+-----------+

以下のようなSQLを記述したのですが、
select tbl1.key,count(id) from tbl1 left outer join tbl2 on tbl1.key=tbl2.key 
group by tbl2.key;
このような結果になってしまいます。
+------+-----------+
| key  | count(id) |
+------+-----------+
| dd   |         0 |
| aa   |         3 |
| bb   |         2 |
| cc   |         1 |
+------+-----------+

希望する結果を得るためにはどのようなSQLを書けばよろしいでしょうか。
ご教示下さい。
どうぞよろしくお願いします。

[前][次][番号順一覧][スレッド一覧]