2017-01-26 18 views
0

を見つけることができませんPostgreSQLは、私はこのクエリを持っている補助文

ERROR: column "words_no" does not exist 
LINE 1: ...ctes_keywords WHERE actes_keywords.keyword_id IN (mots_non))... 

クエリで各補助文です良い(テスト)と私はマニュアルのかなり近くにいると思った。https://www.postgresql.org/docs/current/static/queries-with.html

なぜWITHクエリの補助文が認識されないのか分からない。

答えて

1

IN (..)句でテーブル参照を使用することはできません。サブクエリが必要です:

WITH words_not AS (
    SELECT keywords.id 
    FROM keywords 
    WHERE keyword = any(array['writing']) 
), actes_not AS (
    SELECT actes_keywords.acte_id 
    FROM actes_keywords 
    WHERE actes_keywords.keyword_id IN (select id from words_not) --<< HERE 
) 
SELECT actes.id, 
     actes.acte_date 
FROM actes 
WHERE actes.id <> all(select id from actes_not); --<< HERE 
+0

これは機能します。少なくとも、私はもうエラーはありません。しかし、これは 'keywords'テーブルに存在するキーワードを入力するたびに空の結果を返します。存在しないキーワード( 'tresnfs'など)を入力した場合にのみ、すべてのactes.idsが返されます。 – thiebo

+1

@thiebo:これは別の質問です。 –

関連する問題