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