結合されたソースから必要なすべてのデータを蓄積するビューを作成しようとしています:
CREATE OR REPLACE VIEW dir AS
SELECT
dir_data.id,
dir_data.parent_id,
dir_data.name,
(owner.*)::owner, -- owner_id
FROM
dir_data
LEFT JOIN owner ON owner.id = dir_data.owner_id
たとえば、これにより所有者のデータを簡単に選択できます。
SELECT
id,
name,
(owner).id AS owner_id,
(owner).name AS owner_name,
((owner).company).name AS owner_company
FROM
dir
WHERE
id = 7
問題は、同様の方法でフィールドdir
を変換するために、ビュー (作成されているビュー) との自己結合を行う必要があることです。parent_id
PostgreSQL はそれを好まないようですrelation "dir" does not exist
。
ヒントはありますか?
マルセロ・カントスのコメントへの回答:
CREATE OR REPLACE VIEW dir AS
SELECT
...
FROM
dir_data
LEFT JOIN owner ON owner.id = dir_data.owner_id -- "standard" join
LEFT JOIN dir AS parent_dir ON parent_dir.id = dir_data.parent_id -- self-join, does not work