Toto je váš dotaz:
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;
---------^
Místa, na která ukazují, mají problémy. Všimněte si, že SELECT a GROUP BY odkazují na jiný sloupec. V LEFT JOIN , vy (v podstatě) vždy chcete agregovat podle něčeho prvního stůl, ne druhý.
ORDER BY je další problém. Podle tohoto sloupce neagregujete, takže se musíte rozhodnout, jakou hodnotu chcete. Hádám MIN() nebo 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;
Přidám také, že COUNT(t.qty) je podezřelý. Obvykle qty odkazuje na "množství" a co chcete, je součet:SUM(t.qty) .