MYSQL-запрос LEFT JOIN и GROUP BY - PullRequest
       10

MYSQL-запрос LEFT JOIN и GROUP BY

0 голосов
/ 08 октября 2019

У меня есть запрос, который вытягивает из таблицы и оставляет присоединение к другой таблице. Если я удаляю LEFT JOIN, он возвращает десять записей из-за LIMIT 10 в запросе. Когда я добавляю 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";

Спасибо за любые предложения.

1 Ответ

1 голос
/ 08 октября 2019

Вам нужно добавить группу по

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
...