[英]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.