SQL:如何找到对已删除评论的所有回复?

问题描述

我的评论表包含以下列:

Correct Answer

我需要选择在其 `comment_id` - comment `parent_comment_id` - a reply to comment. 列中指定缺失(不存在)comment_id 的所有 comment_id

基本上,我需要选择对已删除评论的所有回复


示例:

马克说:你好,你好吗?
Jonh 回复:我很好,谢谢。

在我们的数据库中,这些注释将如下所示:
parent_comment_id comment id parent_comment_id
374 0你好,你怎么样?
375 374我很好,谢谢你。

现在想象一下,comment_text 已从我们的数据库删除。这将使 comment_id 374 指向其 comment_id 375 中不存在的 comment_id

所以我的问题是如何选择这样的评论,这些评论是对不再存在的评论回复

解决方法

这回答了问题的原始版本。

我需要选择在其 parent_comment_id 列中指定了缺失(不存在)comment_id 的所有 comment_id。

您可以使用not exists

select c.*
from comments c
where not exists (select 1
                  from comments cp
                  where cp.comment_id = c.parent_comment_id
                 );