これはあなたの質問です:
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;
---------^
指摘された場所には問題があります。 SELECT
に注意してください およびGROUP BY
別の列を参照しています。 LEFT JOIN
で 、あなたは(ほとんど)常に最初ので何かによって集約したいと思っています 2番目ではなくテーブル。
ORDER BY
別の問題です。この列で集計していないため、必要な値を決定する必要があります。 MIN()
を推測しています または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;
そのCOUNT(t.qty)
も追加します 疑わしいです。通常、qty
「数量」を指し、必要なのは合計です:SUM(t.qty)
。