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