繁体   English   中英

MYSQL 查询 LEFT JOIN 和 GROUP BY

[英]MYSQL query LEFT JOIN and GROUP BY

我有一个查询是从一个表中提取并留在另一个表上的。 如果我删除 LEFT JOIN,由于查询中的 LIMIT 10,它会返回 10 条记录。 当我添加 LEFT JOIN 时,它只返回在连接表中匹配的一条记录。

如果有匹配项,我怎样才能让它返回所有十条记录,包括另一个表中的列,但如果没有匹配项,则将该列留空?

以下是查询的两个版本,一个没有 LEFT JOIN,一个有 LEFT JOIN:

版本 1:返回 10 条记录:

$sql = "SELECT d.first,d.last,d.descript,d.profilepic,d.userid,d.id   
FROM demo `d`";
$sql.=" LIMIT 10";

版本 1:返回 1 条记录。 在 10 条记录中,只有匹配的点数

$sql = "SELECT d.first,d.last,d.descript,d.profilepic,d.userid,d.id,SUM(p.points) AS points 
FROM demo `d` 
LEFT JOIN points `p` 
ON p.userid = d.userid";
$sql.=" LIMIT 10";

感谢您的任何建议。

您需要添加分组依据

SELECT d.first,d.last,d.descript,d.profilepic,d.userid,d.id,SUM(p.points) AS points 
FROM demo `d` 
LEFT JOIN points `p` 
ON p.userid = d.userid
group by d.id

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM