アプリ版:「スタンプのみでお礼する」機能のリリースについて

SUM、AVGなどで集計された(group byを使って)テーブルを、LEFT JOINで結合するにはどうしたらいいですか?

A 回答 (4件)

#1、#3回答者です。



#3の補足回答が一部不適切でした。

#1で「バージョン4.1か5.0以降なら」としたのは、#3で書いた「4.1以降」という意味ではなく、「4.1か5.0か、どちらで書ける様になったか不確か」という意味です。
    • good
    • 0
この回答へのお礼

ご回答ありがとうございます。
どちらにしても、バージョン4.0以前では出来ないんですね・・・残念です。
レンタルサーバー業者にバージョンアップの確認をしたら、「バージョン4.0までと4.1以降では仕様が大幅に変わるので今のところ予定は無い。」とのことでした。
テンポラリデータを作成する方法でやってみます。

お礼日時:2006/11/04 09:28

>「バージョン4.1か5.0以降なら、次のような書き方ができます。

」と
>ありましたが、その間、例えば、4.2などではできないということ
>ですか?

日本語が変でしたね。すみません。
「バージョン4.1以降ならできる」という意味です。

select ~ from (select ~ from ~)という書き方が、その頃からできるようになっています。バージョン4.0系でも書けるかどうかは、把握できていません。
バージョン5以降なら、group byを使って集計する部分を、ビューにしてしまう方法もありますね。
古いバージョンなら、#2回答者さんの示している一時表(テンポラリ・テーブル)を使用する方法が簡単でしょう。
    • good
    • 0

一度テンポラリにデータを流し込み、テンポラリをジョインします



create temporary table temptable
select category,sum(data) as sumdata from table2 group by category;
select t1.id,t2.sumdata
from table1 as t1
left join temptable as t2 on t1.id=t2.category
    • good
    • 0

MySQLのバージョンは?



バージョン4.1か5.0以降なら、次のような書き方ができます。

select x.c1,x.sum_c2,t2.c3 from (select c1,sum(c2) as sum_c2 from t1 group by c1) as x left join t2 on x.c1=t2.c1
    • good
    • 0
この回答へのお礼

ご回答ありがとうございます。
レンタルサーバのMySQLを使用しているのですが、残念ながらバージョンは 4.0.24でした。もし、他に方法がありましたら教えていただければ幸いです。
それと、「バージョン4.1か5.0以降なら、次のような書き方ができます。」とありましたが、その間、例えば、4.2などではできないということですか?

お礼日時:2006/11/02 09:15

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!