• 締切済み

group by句

色々と試行錯誤してやっていますが、なかなか自分の 思うような結果が得られないためご質問させて下さい。 テーブルが全部で3つあります。 テーブルA id name 1 巨人 2   西武 テーブルB id name 1 小笠原 2 ラミレス 3 中島 4  片岡 テーブルC id テーブルAID テーブルBID 背番号 1 1 1 30 2 1 2 10 3 2 3 3 4 2 4 8 テーブルを結合し、テーブルCにある 背番号をテーブルAid,テーブルBidを元に sumしたいのですがうまくいきません。 以下がそのSQLになります。 (1)サブクエリーを使ったSQL この場合値が重複されて表示されてしまいます。 select a.name,b.name,c.name, (select sum(背番号) from tableC c where c.テーブルAId = a.id group by c.テーブルAid ), (select sum(背番号) from tableC c where c.テーブルBid = bid group by c.テーブルBid ) from tableC c inner join tableA a on a.id = c.テーブルAid inner join tableB b on b.id = c.テーブルBid (2) select a.name,b.name,c.name, (select sum(背番号) from tableC c where c.テーブルAId = a.id ), (select sum(背番号) from tableC c where c.テーブルBid = bid ) from tableC c inner join tableA a on a.id = c.テーブルAid inner join tableB b on b.id = c.テーブルBid group by c.テーブルAid 重複はされないのですが、group byが一つのみなので ちゃんとした出力がされません。    他にやり方があるのかもしれませんが、お分かりになる方が    いらっしゃいましたら、ご教授お願い致します。

みんなの回答

回答No.2

a.name  b.name 背番号 ------------------------------------------------------------ 巨人      小笠原    30 巨人      ラミレス   10 西武      中島     3 西武      片岡     8 求めているのは上記のような形でしょうか? >テーブルを結合し、テーブルCにある >背番号をテーブルAid,テーブルBidを元に >sumしたいのですがうまくいきません。 この場合、データをsumする必要はありません。 [SQL] select   a.name   ,b.name   ,c.背番号 from   tableC c   join  tableA a   on   a.id = c.tableAid   join  tableB b   on   b.id = c.tableBid 3テーブルの結合で躓いた…? って思っては見たものの結合条件はあっているから そうではなさそうですね。 もしかして3次元的な集計をしようとしているのでしょうか? 補足情報を求めます。

NeilMania
質問者

お礼

ご連絡遅くなりました。 プログラムでやるようにしました。 ありがとうございました。

回答No.1

>テーブルCにある背番号をテーブルAid,テーブルBidを元にsumしたい どういう結果を得たいのか、提示できませんか? 使用しているのは、ここのカテゴリ通りMySQLですか? バージョンは?

関連するQ&A