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]