【发布时间】:2018-10-24 07:37:51
【问题描述】:
我创建了以下表格 -
评论:
| column | type |
+-----------+-------------+
| comment_id| int(11) |
| comment | longText |
| parent_id | int(11) |
+-----------+-------------+
评论元:
| column | type |
+-----------+-------------+
| comment_id| int(11) |
| key | varchar(40) |
| value | varchar(50) |
+-----------+-------------+
在comment meta 表(delete, reply_count, report) 中有key 值。
数据通过以下方式添加到表中:
- 当用户写评论时,它会添加到
comments数据库中,parent_id设置为 0。 - 当用户为特定评论撰写回复时,它会添加到
comments数据库中,其中parent_id设置为评论的comment_id以及该评论的reply_count' is updated in thecmets_meta` 数据库。 - 当用户删除评论或回复时,
comments_meta数据库中的值会更新,但将key设置为delete并将value设置为1w.r.t 到该评论或回复 ID,而不是删除它来自comments数据库。
我想要的只是获取所有未删除的 cmets 的列表。
到现在我都试过了:
select comments.comment_id,comments.comment, ifnull(comments_meta.value,0) as reply_count from comments left join comments_meta on comments_meta.comment_id = comments.comment_id and comments_meta.meta_key = "reply_count";
这给了我所有的 cmets,包括已删除的 cmets。
是否可以使用此表模型获取列表以及如何获取?
或者我应该附上delete 或'reply_countwithcomment` 表中的一个属性?
示例数据注释:
|comment_id | comment | parent_id |
+-----------+-------------+-------------+
| 1 | comment1 | 0 |
| 2 | comment2 | 0 |
| 3 | reply1 | 1 |
| 4 | reply2 | 1 |
| 5 | comment3 | 0 |
+-----------+-------------+-------------+
示例数据评论元:
|comment_id | key | value |
+-----------+-------------+-------------+
| 2 | delete | 1 |
| 1 | reply_count | 2 |
+-----------+-------------+-------------+
预期输出:
|comment_id | comment | reply_count |
+-----------+-------------+-------------+
| 1 | comment1 | 2 |
| 5 | comment3 | 0 |
+-----------+-------------+-------------+
【问题讨论】:
-
请提供相关且最少的样本数据,展示您的要求和预期输出。参考:Why should I provide an MCVE for what seems to me to be a very simple SQL query?
-
您能否详细解释一下您的问题?我不确定这些表之间的逻辑是什么
-
@MadhurBhaiya 我编辑了问题