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

mysql:8129

From: "KAWAI,Takanori" <"KAWAI,Takanori" <GCD00051@xxxxxxxxxx>>
Date: Sun, 10 Aug 2003 09:24:51 +0900
Subject: [mysql 08129] Re: 特定フィールドの異なりによる抽出

川合孝典です。

重箱の隅つつきになってしまいますが
----- Original Message ----- 
From: "Kawaji, Shinya" <kawaji@xxxxxxxxxx>
To: <ml@xxxxxxxxxx>
Sent: Saturday, August 09, 2003 11:37 PM
Subject: [mysql 08125] Re: 特定フィールドの異なりによる抽出


> かわじ、です。
> select
>   0 + left(  min(concat(lpad(ID, 10, '0'), ID) ), 10) as ID,
>   SOURCE,
>   CONTENT,
>   substring( min(concat(lpad(ID, 10, '0'), NOTE)), 11) as NOTE
> from
>   SAMPLE
> where
>   CONTENT = 'x'
> group by
>   SOURCE
> ;
これなのですが、NOTEを頭にIDを10桁にしたものをつけて
minで取り出し、最後に11桁目に削るということですよね。
その点ではIDのほうは特に形を変える必要はないのでは?
ex.
select
  min(ID) AS ID,
  SOURCE,
  CONTENT,
  substring(min(concat(lpad(ID, 10, '0'), NOTE)), 10+1) as NOTE
from
  SAMPLE
where
  CONTENT = 'x'
group by
  SOURCE;

また豊島さんの書かれていた元の文ですが
> 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);

CREATE temporary TABLE T1 AS
  SELECT MIN(ID) AS MIN FROM SAMPLE WHERE CONTENT='x'
  GROUP BY SOURCE;
SELECT ID,SOURCE,CONTENT,NOTE FROM T1,SAMPLE where (min = ID);

とtemprary TABLEをT1の1つにしてみると言うのはダメですか?

また対象とするcontentを変えて何回か実行するのであればCONTENTも
含めたtemporaryを作ったほうが簡単かも知れません。
ついでにテーブルを結合する条件とレコードを選択する条件を
分けたほうがエレガントかも(^^):

CREATE temporary TABLE T1 AS
  SELECT CONTENT as min_cont, MIN(ID) AS MIN FROM SAMPLE
  GROUP BY SOURCE, CONTENT;

SELECT ID,SOURCE,CONTENT,NOTE FROM T1,SAMPLE
  where (T1.min_cont='x') and (T1.min = ID);
SELECT ID,SOURCE,CONTENT,NOTE FROM T1,SAMPLE
  where (T1.min_cont='y') and (T1.min = ID);

SELECT ID,SOURCE,CONTENT,NOTE
 FROM T1 INNER JOIN SAMPLE on (T1.min= ID)
 WHERE T1.min_cont='x';

===================================================
川合 孝典 (Hippo2000)
   DBI日本語メーリングリスト管理人、Kansai.pm所属
   kwitknr@xxxxxxxxxx GCD00051@xxxxxxxxxx
   http://member.nifty.ne.jp/hippo2000http://www.hippo2000.info/
perldocの日本語情報ならperldocjp:翻訳してみませんか?
  http://perldocjp.sourceforge.jp/
===================================================


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

      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"]