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を書けばよろしいでしょうか。 ご教示下さい。 どうぞよろしくお願いします。