0

WITH一見単純なリクエストの含む節を実行しようとしています:

WITH sub AS (SELECT url FROM site WHERE id = 15) 
SELECT * FROM search_result WHERE url = sub.url

しかし、うまくいきません。私は得る

エラー: テーブル "sub" の FROM 句のエントリがありません

どうしたの?

4

4 に答える 4

1

テーブル式は、テーブルのように使用する必要があります。sub の値をスカラーとして使用しようとしています。

これを試してみてください (すみません、Postgres は私の最初の SQL 方言ではありません)。

WITH sub AS (SELECT url FROM site WHERE id = 15) 
SELECT * FROM sub
INNER JOIN
 search_result 
ON
  sub.url = search_result.url

EDIT、代わりに、WITH句をスキップして、次のようにすることもできます:-

SELECT * FROM 
  site
INNER JOIN
  search_result 
ON
  site.url = search_result.url
WHERE 
  site.id = 15
于 2013-05-28T17:46:53.997 に答える
0

これは CTE を使用する正しい方法ではありません。

With sub as (
    SELECT url
    FROM site
    WHERE id = 15
)
SELECT * 
FROM Search_Result SR 
   JOIN sub ON SR.url = sub.Url
于 2013-05-28T17:47:00.433 に答える