[pgsql-jp: 26514] Re: 空きID の複数検索

K.Nakamura kazz @ emsg.jp
2002年 6月 28日 (金) 08:06:29 JST


おはようございます。中村です。
宮田様ありがとうございます。
んーこの方法が「今」の自分に一番わかりやすいです。
いままでご回答くださった皆様ありがとうごじました。

Miyata Tomoki さんは書きました:
>宮田と申します。
>
>K.Nakamura wrote:
>> 以下のようなテーブル構造で
>> create table abc(
>>     id integer,
>>     nm text
>> );
>>
>> データが
>>  id         nm
>> -----------------
>>   1         aaa
>>   4         bbb
>>   5         ccc
>>   8         ddd
>>  10         eee
>> と、あったときに、1〜10のID中から空いている5個のID(2,3,6,7,9)を
>> 一度に取得できるSQLを書きたいのですが、I-Netや書籍をあさっても
>> 書けません。
>> どなたかよろしくご教授お願いいたします。
>
>別のテーブルを用意する方法はどうでしょう?
>一手間増えますが、難しいことをしなくてすみます。
>
>SELECT * FROM abc;
> id | nm
>----+-----
>  1 | aaa
>  4 | bbb
>  5 | ccc
>  8 | ddd
> 10 | eee
>(5 rows)
>
>CREATE TABLE num(id integer);
>
>INSERT INTO num VALUES (1);
>INSERT INTO num VALUES (2);
>INSERT INTO num VALUES (3);
>INSERT INTO num VALUES (4);
>(10まで入れる)
>
>SELECT * from num;
> id
>----
>  1
>  2
>  3
>  4
>  5
>  6
>  7
>  8
>  9
> 10
>(10 rows)
>
>SELECT * FROM num t1 WHERE NOT EXISTS ( SELECT * FROM abc t2 WHERE 
t1.id = t2.id);
> id
>----
>  2
>  3
>  6
>  7
>  9
>(5 rows)
>
>
>----
>Miyata Tomoki
>miyata @ wave.plala.or.jp
>
>

----------------------------------------
〓エーエムエス    中 村 和 志
 Tel 0173-39-1588  Fax 0173-35-0481
  Mail : kazz @ emsg.jp



pgsql-jp メーリングリストの案内