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

mysql:2436

From: (moeru) <<moeru@xxxxxxxxxx>>
Date: Fri, 01 Sep 2000 00:13:34 +0900
Subject: [mysql 02436] Re: GROUP BY で全部のレコードを表示させる方法


2000/08/31 07:23:46 +0900にとみたまさひろ <tommy@xxxxxxxxxx>さんに頂いた
「[mysql 02431] Re: GROUP BY で全部のレコードを表示させる方法」への返事です。


モエルです。

とみたさん、丁寧な解説ありがとうございます。

>> ただ、まだ一時テーブルを作成する目的・意義みたいなものが理解できていません。
>> 一時テーブルって、自己結合とどう違うのでしょうか?
>
>一時テーブルを使う利点は接続が切れたら勝手に消えてくれるという
>ことだけです。

>    create temporary table hoge (userid int not null, 
>	price int not null, index(userid), index(price));
>    insert into hoge select userid, max(price) from item 
>	where itemid = '$itemid' group by userid;
>    select hoge.userid, hoge.price, quantity from hoge, item
>	where hoge.userid = item.userid and hoge.price = item.price
>	order by hoge.price desc;
>
>これでどうでしょう? userid 毎の最大 price を一旦一時テーブルに
>保存しておいて、その price に一致する quantity を item から取り出す
>ということをやってます。

このwhere hoge.userid = item.userid and hoge.price = item.price
で、やってることが理解できました。
結局、max()などの制限で他のデータが正確に取り出せないような場合、
一時テーブルを作ってその他のデータを持ってくるってことですよね。

なんとなく自己結合でもいけちゃうような気がしますけど
できなかったのは、ぼくの書き方の問題でしょうか(^^;


マニュアルで
CREATE TEMPORARY TABLE test TYPE=HEAP
ってのを見つけました。

パフォーマンスの向上にも使われるんですね。
ぼくの場合は、しょっちゅう開くテーブルじゃないから
メモリじゃなくてDISKのテンポラリーで十分かな。。


>ん〜、私はバグじゃないと思うんですけどね…。

いやぁ、とみたさんが回答されているので
動かないならバグと思うしかなかったです(^^;

今回いただいたSQLで希望どうりに動きました\(^o^)/

どうもありがとうございますm(__)m


モエル


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

      2425 2000-08-29 20:56 [<moeru@xxxxxxxxxx>  ] GROUP BY で全部のレコードを表示させる方法
      2426 2000-08-29 21:16 ┗[とみたまさひろ <tomm]                                       
      2427 2000-08-29 22:21  ┗[<moeru@xxxxxxxxxx>  ]                                     
      2428 2000-08-29 23:40   ┗[とみたまさひろ <tomm]                                   
      2429 2000-08-30 00:17    ┣[<moeru@xxxxxxxxxx>  ]                                 
      2430 2000-08-30 21:53    ┗[<moeru@xxxxxxxxxx>  ]                                 
      2431 2000-08-31 07:23     ┗[とみたまさひろ <tomm]                               
      2432 2000-08-31 18:19      ┣[Natsu Tanaka <natsug] はじめまして                
      2434 2000-08-31 23:33      ┃┣[<moeru@xxxxxxxxxx>  ]                           
      2435 2000-09-01 00:06      ┃┗[とみたまさひろ <tomm]                           
      2443 2000-09-04 11:33      ┃ ┗[Natsu Tanaka <natsug] みなさんへ              
->    2436 2000-09-01 00:13      ┗[<moeru@xxxxxxxxxx>  ]