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

mysql:15783

From: <shin-1@xxxxxxxxxx>
Date: Wed, 11 Jul 2012 02:56:39 +0900
Subject: [mysql 15783] カテゴリ毎の上位3件

こんばんは。shin1です。

価格データから、各カテゴリ毎の売価が安いものTOP3を
一覧にしたいのですが、こういう項目のテーブルがあったとします。

create table saledata (
 saleid int auto_increment,
 category varchar(20),
 name  varchar(200),
 price  int,
 primary key (saleid)
);

他のエンジンなら、以下のような感じだと思うのですが
MySQLではサブクエリのLIMITが使えないと知り、困っています。
MySQLではこういう場合、どのように記述すれば良いのでしょうか。

select category, name, price from saledata AS t
 where saleid in (
  select saleid from saledata where category=t.category
  order by price asc limit 3
 )
 order by category asc, price asc

たぶん、良くある例な気がしますが、ネットで探し当てられ
ませんでした。よろしくお願い致します。

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

->   15783 2012-07-11 02:56 [<shin-1@xxxxxxxxxx> ] カテゴリ毎の上位3件                     
     15784 2012-07-11 10:27 ┣[高橋政利 <takahashi@]                                       
     15785 2012-07-11 12:28 ┣[中川 貴 <takashi.nak]                                       
     15796 2012-07-12 04:10 ┃┗[<shin-1@xxxxxxxxxx> ]                                     
     15786 2012-07-11 13:49 ┗[<gotou1213@xxxxxxxxx]                                       
     15787 2012-07-11 14:17  ┣[<gotou1213@xxxxxxxxx]                                     
     15788 2012-07-11 15:00  ┃┗[中川 貴 <takashi.nak]                                   
     15790 2012-07-11 16:09  ┗[<shin-1@xxxxxxxxxx> ]                                     
     15791 2012-07-11 17:11   ┣[あきら <akirainfoml@]                                   
     15794 2012-07-12 03:38   ┃┗[<shin-1@xxxxxxxxxx> ]                                 
     15792 2012-07-12 00:40   ┗[<gotou1213@xxxxxxxxx]                                   
     15795 2012-07-12 03:42    ┗[<shin-1@xxxxxxxxxx> ]