mysql - 帮助 MySQL 子查询

标签 mysql

基本上我有一个评论 MySQL 表。我有一个名为“parent_id”的列,用于跟踪一条评论是否是对另一条评论的回复。

我想做的是统计所有的评论。这工作正常,但如果您删除评论而不是回复,它会将它们视为仍处于事件状态但完好无损,它们将被删除。

这是我的 MySQL 查询,目前无法正常工作...有什么想法吗?

SELECT ic.* 
FROM roster_services_items_comments AS ic 
WHERE (SELECT icp.id FROM roster_services_items_comments AS icp 
       WHERE ic.parent_id = '' 
       OR (icp.id = ic.parent_id AND icp.deleted != 0) 
       LIMIT 1) IS NOT NULL

最佳答案

关于:

SELECT ic.*, COUNT(icp.parent_id) AS replies_count
FROM roster_services_items_comments AS ic
LEFT JOIN roster_services_items_comments AS icp ON ic.id = icp.parent_id
WHERE ic.deleted != 0
GROUP BY ic.id
HAVING ic.parent_id IS NULL

编辑:修复了评论没有任何回复时不计在内的计数

关于mysql - 帮助 MySQL 子查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5428740/

相关文章:

mysql - 从 azure webapp 从另一台服务器访问数据库

php - PDO INSERT ON DUPLICATE KEY UPDATE 仅插入和更新 6 行

php - MySQL 循环或嵌套查询

php - 使用ajax实时获取mysql新记录

php - Laravel模型查询错误: "Illuminate\Database\QueryException: SQLSTATE[23000]: Integrity constraint violation"

MySQL 连接到 Google Cloud SQL 实例语法错误

mysql - 非技术人员的 SQL 和 NoSQL 类比

php - 距离我的 table 只有 4 行

java - 作为 hibernate POJO 的 native SQL 结果

php - 在 PHP 递归中查找从第 n 个子级到顶级的所有中间类别