2017-06-10 4 views
0

Postgres 9.52番目のAS文の最初のWITH AS文の結果を使用する

最初のWITH ASの結果を使用できる方法でWITH文を使用するにはどうすればよいですか?今、私は取得しています:

psql:query.sh:7: ERROR: missing FROM-clause entry for table "foo2" 
LINE 6: ...INTO copy_on_write(id, images, posted_by) VALUES (foo2.id, f... 

WITH foo1 AS (SELECT listings.id, listings.images, listings.posted_by 
    FROM listings WHERE listings.posted_by = 10209280753550922::text 
    AND listings.id = 5), 
foo2 AS (SELECT foo1.id, foo1.images, users.internal_id FROM foo1 
JOIN users ON users.id = foo1.posted_by) 
INSERT INTO copy_on_write(id, images, posted_by) VALUES (foo2.id, foo2.images, foo2.internal_id) 

答えて

1

あなただけではないINSERT . . . VALUESINSERT . . . SELECT必要があります。

WITH foo1 AS (
     SELECT l.id, l.images, l.posted_by 
     FROM listings l 
     WHERE l.posted_by = 10209280753550922::text AND l.id = 5 
    ), 
    foo2 AS (
     SELECT foo1.id, foo1.images, u.internal_id 
     FROM foo1 JOIN 
      users u 
      ON u.id = foo1.posted_by 
    ) 
INSERT INTO copy_on_write(id, images, posted_by) 
    SELECT foo2.id, foo2.images, foo2.internal_id 
    FROM foo2; 
関連する問題