WITHを使わなければ動くコードが、WITHを使って書こうとすると構文エラーが発生します(postgreSQL)。
どこがおかしいのでしょうか?
初心者ゆえ基本的なミスかもしれませんが、教えていただけるとありがたいです。
エラーは以下の通りです。
--ERROR: syntax error at or near "A"
--LINE 16: WHERE personid IN A
WITHありのコード
sql
1WITH A AS (SELECT personid 2 FROM filmrating NATURAL JOIN filmparticipation 3 NATURAL JOIN person 4 WHERE votes > 60000 5 AND rank >= 8 6 AND parttype = 'director') 7 , B AS (SELECT personid 8 FROM filmrating NATURAL JOIN filmparticipation 9 NATURAL JOIN person 10 WHERE votes > 60000 11 AND rank < 8 12 AND parttype = 'director') 13SELECT DISTINCT UPPER(firstname|| ' ' || lastname) AS fullname 14FROM filmrating NATURAL JOIN filmparticipation 15 NATURAL JOIN person 16WHERE personid IN A 17AND NOT personid IN B; 18
WITHなしのコード
sql
1SELECT DISTINCT UPPER(firstname|| ' ' || lastname) AS fullname 2FROM filmrating NATURAL JOIN filmparticipation 3 NATURAL JOIN person 4WHERE personid IN (SELECT personid 5 FROM filmrating NATURAL JOIN filmparticipation 6 NATURAL JOIN person 7 WHERE votes > 60000 8 AND rank >= 8 9 AND parttype = 'director') 10AND NOT personid IN (SELECT personid 11 FROM filmrating NATURAL JOIN filmparticipation 12 NATURAL JOIN person 13 WHERE votes > 60000 14 AND rank < 8 15 AND parttype = 'director'); 16
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2019/10/23 17:17
2019/10/23 21:13