繁体   English   中英

正确的查询在用作子查询时会产生语法错误

[英]A correct query produces a syntax error when used as a sub-query

首先,我有这个查询,它工作得很好:

DELETE FROM notifications
WHERE data @> '{"postID": 321}'
RETURNING user_id, read

但是,我将它用作子查询:

SELECT d.user_id, count(d.user_id)
FROM (
    DELETE FROM notifications
    WHERE data @> '{"postID": 321}'
    RETURNING user_id, read
) as d
WHERE d.read = false
GROUP BY d.user_id

并得到这个错误:

ERROR:  syntax error at or near "FROM"
LINE 16:  DELETE FROM notifications
                 ^
SQL state: 42601
Character: 245
  1. 我该如何解决这个问题并达到预期的效果?
  2. 一般来说,正确的查询如何变成不正确的子查询?

使用 CTE:

WITH d as (
      DELETE FROM notifications
      WHERE data @> '{"postID": 321}'
      RETURNING user_id, read
     ) 
SELECT d.user_id, count(d.user_id)
FROM d
WHERE d.read = false
GROUP BY d.user_id

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM