簡體   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