Dette er din forespørgsel:
SELECT p.title, COUNT(t.qty) AS total
-------^
FROM payments t LEFT JOIN
products AS p
ON p.id = t.item
WHERE t.user = 1
GROUP BY t.item
---------^
ORDER BY t.created DESC;
---------^
De pegede steder har problemer. Bemærk, at SELECT og GROUP BY henviser til en anden kolonne. I en LEFT JOIN , du (stort set) altid ønsker at aggregere efter noget i den første tabel, ikke den anden.
ORDER BY er et andet problem. Du samler ikke efter denne kolonne, så du skal beslutte, hvilken værdi du ønsker. Jeg gætter på MIN() eller MAX() :
SELECT p.title, COUNT(t.qty) AS total
FROM payments t LEFT JOIN
products AS p
ON p.id = t.item
WHERE t.user = 1
GROUP BY p.title
ORDER BY MAX(t.created) DESC;
Jeg vil også tilføje at COUNT(t.qty) er mistænkt. Normalt qty refererer til "mængde", og det du ønsker er summen:SUM(t.qty) .