Je rencontre un problème ici :
J'ai deux tables :
Une table users
:
+----+---------------+----------+
| id | username | company |
+----±---------------±----------+
| 1 | John | 0 |
| 2 | Jack | 0 |
| 3 | Casimir | 0 |
±----±---------------±----------±
Une table orders
:
+----+---------------+----------+--------+
| id | date | iduser | status |
+----±---------------±----------+--------+
| 1 | 2012-05-28 | 1 | 1 |
| 2 | 2012-05-25 | 1 | 1 |
| 3 | 2012-04-28 | 2 | 1 |
| 4 | 2012-03-28 | 1 | 1 |
| 5 | 2012-02-28 | 2 | 0 |
±----±---------------±----------±--------+
Ce que j'essaie de faire est d'obtenir un résultat comme celui-ci :
+----------+---------------+-------------+
| username | COUNT(order) | MAX(date) |
+----------±---------------±-------------+
| John | 3 | 2012-05-28 |
| Jack | 1 | 2012-04-28 |
| Casimir | 0 | NULL |
±----------±---------------±-------------±
Voici la requête que j'ai pour le moment :
SELECT u.username, COUNT(o.id), MAX(o.date)
FROM users u
INNER JOIN orders o ON u.id = o.iduser
WHERE o.status = 1
GROUP BY u.id
Cette requête me donne un résultat comme :
+----------+---------------+-------------+
| username | COUNT(order) | MAX(date) |
+----------±---------------±-------------+
| John | 3 | 2012-05-28 |
| Jack | 1 | 2012-04-28 |
±----------±---------------±-------------±
Comme vous pouvez le voir, l'utilisateur Casimir
n'est pas affiché car il n'a passé aucune commande. Comment puis-je modifier ma requête pour obtenir le résultat dont j'ai besoin s'il vous plaît ?
Merci !