[pgsql-jp: 35812] Re: 階層問い合わせについて

新井 哲也 arai.tetsuya @ lab.ntt.co.jp
2005年 8月 9日 (火) 15:09:26 JST


新井と申します。

 >ここで、東京を頭にした階層表示で
 >SELECT * FROM connectby('sample' , 'SID' , '親SID' , 'SID' , '1');
 >としても
 >「
 >SQL実行中に以下のエラーが発生しました。
 >ERROR:  column "sample" does not exist
 >」
 >
 >というエラーが発生してしまいます。

connectbyの4番目のパラメータは列名を指定するのではなくてスタート行の
親キーの値を指定します。

また、構文もAS句を省略すると上記のようなエラーが発生します。

参考までにREADMEの内容を基に私の環境(PostgreSQL8.0.3)で試した結果を
示します。

---
sample=# select * from sample;
  sid | psid |   name
-----+------+-----------
    1 |      | Tokyo
    2 |      | Kanagawa
    3 |    1 | Shinagawa
    4 |    1 | Minato
    5 |    1 | Shibuya
    6 |    2 | Yokohama
    7 |    2 | Kawasaki
    8 |    3 | Osaki
    9 |    3 | Ooi
   10 |    4 | Akasaka
(10 rows)

sample=# SELECT * FROM connectby('sample' , 'SID' , 'pSID' , '1' , 1, '~') 
as t(SID int,pSID int,level int,branch text);
  sid | psid | level | branch
-----+------+-------+--------
    1 |      |     0 | 1
    3 |    1 |     1 | 1~3
    4 |    1 |     1 | 1~4
    5 |    1 |     1 | 1~5
(4 rows)

sample=# SELECT * FROM connectby('sample' , 'SID' , 'pSID' , '2' , 1, '~') 
as t(SID int,pSID int,level int,branch text);
  sid | psid | level | branch
-----+------+-------+--------
    2 |      |     0 | 2
    6 |    2 |     1 | 2~6
    7 |    2 |     1 | 2~7
(3 rows)

==============================================
  Tetsuya Arai

  NTT Cyber Space Laboratories
  Nippon Telegraph and Telephone Corporation.
  E-mail: arai.tetsuya @ lab.ntt.co.jp
============================================== 




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