查询在MySQL中返回一行

时间:2017-08-23 10:44:44

标签: mysql sql aggregate-functions

当我运行以下查询时,我只获得第一行:

ini_set('max_execution_time', 120);

我有两个表,Projects和Users,项目表有一个用户ID,我用它来从users表中获取名称。然后,我想看看每个用户有多少个独特的项目,并显示每个用户拥有的项目数量。

1 个答案:

答案 0 :(得分:2)

您需要group by

SELECT u.name AS Firstname, u.lastname AS Lastname,
       count( DISTINCT p.id ) AS Count
FROM projects p INNER JOIN
     users u
     ON p.user_fk = u.id
GROUP BY u.name, u.lastname
order by user_fk;

在几乎所有其他数据库中,您的查询都会返回错误,因为它在SELECT中的列中没有聚合而不在GROUP BY中。我认为MySQL正朝着使其成为默认行为。