mysql:15331
From: "KIMURA, Meiji" <"KIMURA, Meiji" <kimura804@xxxxxxxxxx>>
Date: Tue, 8 Jun 2010 00:06:41 +0900 (JST)
Subject: [mysql 15331] Re: 【お知恵拝借】副問い合わせに limit 3
こんばんわ、木村です。
自己結合とgroup by, havingでこんなんでどうですかね。
mysql> SELECT t1.id, t1.field, t1.ordfield
-> FROM tbl t1
-> INNER JOIN tbl t2 ON t1.field = t2.field AND t1.ordfield >= t2.ordfield
-> GROUP BY t1.field, t1.id, t1.ordfield
-> HAVING count(*) <= 3;
+----+-------+----------+
| id | field | ordfield |
+----+-------+----------+
| 1 | 0 | 1 |
| 4 | 0 | 2 |
| 7 | 0 | 3 |
| 2 | 1 | 11 |
| 5 | 1 | 22 |
| 8 | 1 | 33 |
| 3 | 2 | 55 |
| 6 | 2 | 66 |
| 9 | 2 | 77 |
+----+-------+----------+
9 rows in set (0.00 sec)
ただパフォーマンスは、これだとあまり良さそうにないですが。。。。。
--- 遠藤 俊裕 <endo@xxxxxxxxxx> wrote:
> えんどうです。
> お返事有り難うございました。
>
> create table tbl
> (
> id int auto_increment primary key,
> field int,
> ordfield int
> );
>
> INSERT INTO `carelabo_portal`.`tbl`
> (`id`, `field`, `ordfield`) VALUES
> (NULL, '0', '1'), (NULL, '1', '11'), (NULL, '2', '55'),
> (NULL, '0', '2'), (NULL, '1', '22'), (NULL, '2', '66'),
> (NULL, '0', '3'), (NULL, '1', '33'), (NULL, '2', '77'),
> (NULL, '0', '4'), (NULL, '1', '44'), (NULL, '2', '88');
>
> で、実行した時、
>
> 1, 0, 1
> 4, 0, 2
> 7, 0, 3
> 2, 1, 11
> 5, 1, 22
> 8, 1, 33
> 3, 2, 55
> 6, 2, 66
> 9, 2, 77
>
> (おそらく)上記が出て欲しいです。
> データがダミーなので、おそらくと書きましたが、なんせ、グ
> ループ(field)毎に(ordfiledの)トップ3が出れば嬉しい
> のです。
>
> 今は、3回 SQL を( field 毎に)発行して、プログラムでがっ
> ちゃんこしてます。ちょっと、不細工・・・(^^;
--
キムラデービー代表 木村明治(KIMURA, Meiji)
http://kimuradb.com
[News] 2009/12/10(木) Firebird徹底入門発売!現在絶賛販売中!!
http://www.amazon.co.jp/exec/obidos/ASIN/4798119636/kimuradb-22
15328 2010-06-07 21:41 [遠藤 俊裕 <endo@xxxx] 【お知恵拝借】副問い合わせに limit 3 15329 2010-06-07 22:00 ┗[Miyata Masaki <catlo] 15330 2010-06-07 22:33 ┗[遠藤 俊裕 <endo@xxxx] -> 15331 2010-06-08 00:06 ┣["KIMURA, Meiji" <kim] 15334 2010-06-08 01:48 ┃┗[遠藤 俊裕 <endo@xxxx] 15335 2010-06-08 06:55 ┃ ┗["KIMURA, Meiji" <kim] 15336 2010-06-08 10:45 ┃ ┗[遠藤 俊裕 <endo@xxxx] 15337 2010-06-08 13:54 ┃ ┣[SAKAI Kei <sak2@xxxx] 15338 2010-06-08 15:28 ┃ ┃┣[遠藤 俊裕 <endo@xxxx] 15339 2010-06-08 21:56 ┃ ┃┗["KIMURA, Meiji" <kim] 15340 2010-06-08 23:00 ┃ ┗["KIMURA, Meiji" <kim] 15332 2010-06-08 00:47 ┣[SAKAI Kei <sak2@xxxx] 15333 2010-06-08 01:16 ┗[遠藤 俊裕 <endo@xxxx]