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

mysql:8122

From: "TOYOSHIMA,Masayuki" <"TOYOSHIMA,Masayuki" <mtoyo@xxxxxxxxxx>>
Date: Sat, 09 Aug 2003 21:39:39 +0900
Subject: [mysql 08122] 特定フィールドの異なりによる抽出

豊島(東京外国語大学アジア・アフリカ言語文化研究所)と申します。
 
或るフィールドの異なりごとにレコードを一つずつ取り出すという
操作をしたいと思います。
 
具体的には、次の様なテーブル SAMPLE があるとします。
(ID は unique key)
 
 ID | SOURCE | CONTENT | NOTE
----+--------+---------+------
  1 | A      | x       | abc
  2 | A      | x       | def
  3 | A      | y       | hij
  4 | B      | y       | klm
  5 | B      | y       | opq
  6 | C      | x       | rst
  7 | C      | y       | vwx
 
このとき、SOURCE ごとに一つずつ取り出した次のような結果を得たいのです。
 
a) CONTENT='x' について検索したら
 
 ID | SOURCE | CONTENT | NOTE
----+--------+---------+------
1   |A       |x        |abc
6   |C       |x        |rst
 
b) CONTENT='y' について検索したら
 
 ID | SOURCE | CONTENT | NOTE
----+--------+---------+------
3   |A       |y        |hij
4   |B       |y        |klm
7   |C       |y        |vwx
 
次のように3回 query すれば、期待の結果は一応得られます。
 
1) create temp table T1 as select ID,SOURCE from SAMPLE where (CONTENT = 'x');
2) create temp table T2 as select min(ID) from T1 group by SOURCE;
3) select ID,SOURCE,CONTENT,NOTE from T2,SAMPLE where (min = ID);
 
しかし、これはあまりに非能率のような気がします。
もっとエレガントな方法はないものでしょうか。
 
豊島正之(とよしま まさゆき) mtoyo@xxxxxxxxxx
http://jcs.aa.tufs.ac.jp/mtoyo/
東京外国語大学アジア・アフリカ言語文化研究所
〒183-8534 東京都府中市朝日町3-11-1 代表Fax 042-330-5610



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

->    8122 2003-08-09 21:39 ["TOYOSHIMA,Masayuki"] 特定フィールドの異なりによる抽出        
      8123 2003-08-09 22:33 ┣[yamada <tirutiru@xxx]                                       
      8124 2003-08-09 22:53 ┃┗[yamada <tirutiru@xxx]                                     
      8125 2003-08-09 23:37 ┗["Kawaji, Shinya" <ka]                                       
      8126 2003-08-10 07:21  ┣["TOYOSHIMA,Masayuki"]                                     
      8127 2003-08-10 08:17  ┃┗["Kawaji, Shinya" <ka]                                   
      8128 2003-08-10 08:59  ┃ ┗["TOYOSHIMA,Masayuki"]                                 
      8129 2003-08-10 09:24  ┗["KAWAI,Takanori" <GC]                                     
      8130 2003-08-10 13:07   ┗["TOYOSHIMA,Masayuki"]