[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 メーリングリストの案内