mysql - 如何使用左连接来统计mysql中除第一个结果之外的结果数?

标签 mysql join

我正在构建一个自定义论坛。我有两个表:线程和消息。如果您要查看一个线程,出现的第一条消息将是消息表中的一行,该行将是具有您正在查看的任何线程的 thread_id 的最大值。我想在我的查询中包含一个联接,该联接将查找对此线程的回复数......因此计数不能包含第一条消息。通常我会做这样的事情:

SELECT
   message_id, thread_id
FROM messages
WHERE thread_id = 1
   AND message_id != {the first message's id}

我正在尝试合并我的查询以缩短加载时间。如何使用联接来实现上述目标?

这是一个SQLFiddle到目前为止我所拥有的。我只需要添加一些内容来查找第一个消息行并将其从回复计数中排除。

最佳答案

如果总是有第一个,你可以直接选择 count(*)-1 吗?

那个 SQL Fiddle 似乎与你所说的不符 - 只有 2 条消息,它们都没有 thread_id 作为消息。

关于mysql - 如何使用左连接来统计mysql中除第一个结果之外的结果数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26877477/

相关文章:

spring - 在 Spring Jpa 数据中加入 3 个表

mysql - 这是好的数据库规范化吗?

mysql - SQL从有限制的2个表中选择

mysql - 实时网站速度减慢太多

php - mysql_insert_id() 返回 0

mysql - 如何将 mysql 指针转换为 unsigned long

mysql - 根据 MySQL 中联接的结果更新表

mysql - 更改mysql的tmp文件夹

MySQL 帮助进行查询

sql-server - 表上的条件连接