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

mysql:14627

From: HIRATSUKA Sadao <HIRATSUKA Sadao <hiratsuka.sadao@xxxxxxxxxx>>
Date: Thu, 14 Aug 2008 10:04:46 +0900
Subject: [mysql 14627] Re: group by っぽい絞り込み検索

平塚です。

> それぞれのユーザが、一番最後に何をやったかというのを取り出したいと思って
> おり、

いわゆるひとつの副問い合わせと言うやつで書けます。
MySQL4.1なら動くはずです。

mysql> select t.user, t.time, t.task
    -> from tbl_user_task t
    -> where t.time = 
    -> (
    -> select max(m.time)
    -> from tbl_user_task m
    -> where t.user = m.user
    -> );
+--------+---------------------+------+
| user   | time                | task |
+--------+---------------------+------+
| hanako | 2008-08-14 00:10:10 | F    | 
| jiro   | 2008-08-14 00:11:10 | I    | 
| ichiro | 2008-08-14 00:12:10 | J    | 
| taro   | 2008-08-14 00:14:20 | K    | 
+--------+---------------------+------+
4 rows in set (0.00 sec)


別解もいくつかあります。

性能が異なる場合があるので、
お使いのデータで良いものを探してみてください。

mysql> select t.user, t.time, t.task
    -> from tbl_user_task t
    -> where (t.user, t.time) in
    -> (
    -> select m.user, max(m.time) 
    -> from tbl_user_task m
    -> group by m.user
    -> );
+--------+---------------------+------+
| user   | time                | task |
+--------+---------------------+------+
| hanako | 2008-08-14 00:10:10 | F    | 
| jiro   | 2008-08-14 00:11:10 | I    | 
| ichiro | 2008-08-14 00:12:10 | J    | 
| taro   | 2008-08-14 00:14:20 | K    | 
+--------+---------------------+------+
4 rows in set (0.00 sec)


よろしくどうぞ。

-- 
平塚貞夫 hiratsuka.sadao@xxxxxxxxxx


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

     14626 2008-08-14 01:51 [MAO <mao@xxxxxxxxxx>] group by っぽい絞り込み検索             
->   14627 2008-08-14 10:04 ┗[HIRATSUKA Sadao <hir]                                       
     14628 2008-08-14 14:39  ┗[MAO <mao@xxxxxxxxxx>]