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

mysql:4177

From: Shinichi Moritani <Shinichi Moritani <ml@xxxxxxxxxx>>
Date: Thu, 16 Aug 2001 15:23:42 +0900
Subject: [mysql 04177] Re: GROUP BY について [ 報告 ]

森谷です。

>>テンポラリテーブルを使って、
>>
>>CREATE TEMPORARY TABLE tmp SELECT fromid, toid, MAX(time) AS maxtime FROM table1 GROUP 
>BY fromid, toid;
>>SELECT no, tmp.fromid, tmp.toid, maxtime FROM table1, tmp WHERE 
>table1.fromid=tmp.fromid AND table1.toid=tmp.toid AND table1.time=tmp.maxtime;
>>
>>…とかで、できませんかね。試してませんが…。
>
>これ!行けそうです。
>コマンドラインからは、旨く行っている感じです。
>実際にはPHPにて起動させるので、そこが旨く行けば言うこと無しです。

これ、やってみましたが、PHPからでも何とか動きました。
でも、データが4000件以上テンポラリーに吐き出されるので、
パフォーマンスが悪く、使い物になりませんでした(;_:)
(メモリへの負荷が大きいようでした)

しかたないので、テーブルをあらかじめ作っておいて、そこに吐き出したデータを
使うようにして、何とか逃れようと思います。

DELETE FROM tmp;
INSERT INTO tmp SELECT fromid, toid, MAX(time) AS maxtime FROM table1 GROUP BY fromid, 
toid;
SELECT no, tmp.fromid, tmp.toid, maxtime FROM table1, tmp WHERE table1.fromid=tmp.fromid 
AND table1.toid=tmp.toid AND table1.time=tmp.maxtime;

実際には最後のSQL文で、他のテーブルを3つほどJOINしています。
(ここがネックなんでしょうけど・・・)


***************************
 Name : Shinichi Moritani
 Mail : ml@xxxxxxxxxx
***************************

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

      4171 2001-08-15 19:09 [Shinichi Moritani <m] GROUP BY について                       
      4174 2001-08-15 21:31 ┗[とみたまさひろ <tomm]                                       
      4175 2001-08-16 10:22  ┗[Shinichi Moritani <m]                                     
->    4177 2001-08-16 15:23   ┗[Shinichi Moritani <m] Re: GROUP BY について [ 報告 ]    
      4179 2001-08-16 20:14    ┗[とみたまさひろ <tomm]