我的查询是
DELETE FROM event_comments WHERE thread_id = '1BZbAR'
returning parent_id, comment_id, thread_id
它返回3行
null | 1 | 1BZbAR
1 | 2 | 1BZbAR
2 | 3 | 1BZbAR
如何选择parent_id为null的行?
我尝试过:
DELETE FROM event_comments WHERE thread_id = '1BZbAR'
returning MIN(parent_id), comment_id, thread_id
DELETE FROM event_comments WHERE thread_id = '1BZbAR'
returning HAVING parent_id is null, comment_id, thread_id
DELETE FROM event_comments WHERE thread_id = '1BZbAR'
returning parent_id, comment_id, thread_id as t
SELECT * FROM t WHERE parent_id is null
但是所有这些都给了他们语法错误。我该怎么办?
答案 0 :(得分:2)
您应该能够对当前的delete语句进行子查询,或将其放入CTE中并进行以下查询:
WITH cte AS (
DELETE
FROM event_comments
WHERE thread_id = '1BZbAR'
RETURNING parent_id, comment_id, thread_id
)
SELECT parent_id, comment_id, thread_id
FROM cte
WHERE parent_id IS NULL;