Mysql 带WHERE子句的左连接和

Mysql 带WHERE子句的左连接和,mysql,left-join,Mysql,Left Join,下面的查询总是为所有行输出SUM,而不是peruserid。不知道还能去哪里看。请帮忙 SELECT * FROM assignments LEFT JOIN ( SELECT SUM(timeworked) AS totaltimeworked FROM time_entries ) assignments ON (userid = assignments.userid AND ticketid = ?)

下面的查询总是为所有行输出SUM,而不是per
userid
。不知道还能去哪里看。请帮忙

SELECT * FROM assignments
        LEFT JOIN (
            SELECT SUM(timeworked) AS totaltimeworked
            FROM time_entries
        ) assignments ON (userid = assignments.userid AND ticketid = ?) 
        WHERE       ticketid = ?
        ORDER BY    assigned,scheduled

如果要保留SELECT*,则必须在子查询中添加GROUPBY子句。像这样的

SELECT * FROM assignments
    LEFT JOIN (
        SELECT SUM(timeworked) AS totaltimeworked
        FROM time_entries
        GROUP BY userid
    ) time_entriesSummed ON time_entriesSummed.userid = assignments.userid
    WHERE       ticketid = ?
    ORDER BY    assigned,scheduled
 SELECT
    assignments.id,
    assignments.assigned,
    assignments.scheduled,
    SUM(time_entries.timeworked) AS totalTimeworked
 FROM assignments
 LEFT JOIN time_entries 
 ON time_entries.userid = assignments.userid
 GROUP BY assignments.id, assignments.assigned, assignments.scheduled
但更好的方法是将SELECT*改为直接选择要添加GROUPBY子句的字段。像这样的

SELECT * FROM assignments
    LEFT JOIN (
        SELECT SUM(timeworked) AS totaltimeworked
        FROM time_entries
        GROUP BY userid
    ) time_entriesSummed ON time_entriesSummed.userid = assignments.userid
    WHERE       ticketid = ?
    ORDER BY    assigned,scheduled
 SELECT
    assignments.id,
    assignments.assigned,
    assignments.scheduled,
    SUM(time_entries.timeworked) AS totalTimeworked
 FROM assignments
 LEFT JOIN time_entries 
 ON time_entries.userid = assignments.userid
 GROUP BY assignments.id, assignments.assigned, assignments.scheduled
编辑1
查询2中包含的表名,如chameera在下面的评论中所述

如果将表定义与所需的样本数据集包括在一起,您将努力实现更好的效果。sum也是一个聚合函数。您可能需要一个group by语句聚合函数,而不使用group by,结果将是一行,假设所有行都是一行group@MKhalidJunaid:我试图为
time\u条目中与
assignments
中的
userid
关联的每个
userid
获取
timeworked
总和。读取聚合函数
timeworked
assignments
表中不存在,它只存在于
time\u条目
@AlexG use
timeworked
列中,表名为
SUM(time\u entries.timeworked)
@AlexG能否包含表结构和所需的输出样本?