mysql - 数据库的最新结果

标签 mysql sql

我需要仅显示最新项目的两个连接表的结果。我有以下疑问:

  SELECT project.id,
         project.created,
         COUNT(DISTINCT events.user_id) AS cnt
    FROM project
    JOIN events ON (events.project_id = project.id)
   WHERE project.creator = $creatorID
     AND events.user_id != $creatorID
ORDER BY project.created DESC
   LIMIT 1

出于某种原因,我不断获得第一个项目......我在这里错过了什么?

最佳答案

您绝对走在正确的道路上。您似乎缺少聚合 COUNT()GROUP BY 子句。试试这个:

SELECT
  project.id,
  project.created,
  count(DISTINCT events.user_id) AS cnt
FROM project
  JOIN events ON (events.project_id = project.id)
WHERE
  project.creator = $creatorID
  AND events.user_id != $creatorID
GROUP BY project.id, project.created
ORDER BY project.created DESC,
LIMIT 1

关于mysql - 数据库的最新结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6076315/

相关文章:

sql - 即使日期比较失败,为什么我的代码仍执行 IF block ?

MySQL 查询获取唯一错误代码的计数

sql - 使用 dbms_random.value 和指定的比例创建

c# - 为什么我收到对象引用未设置错误

mysql - 考虑到时间复杂度,如何以最快的方式在MySQL中选择最大id

php - 如何在php中每次单击按钮时一一显示数据库中的项目

mysql - SQL 查询产生如下所示的输出

Php 邮件程序使用 SQL 表发送电子邮件

mysql - Cloudstack-无法删除辅助存储

sql - 如何在连接多个表时使用 GROUP BY 连接字符串?