Ensemble de count dans une requête
Bonjour à tous,
J'ai une requête qui me permet de faire plusieurs COUNT et un MIN sur différente tables.
Cette requête marche bien en mysql 5.1.36 mais sur mon serveur de prod en 5.0.45 elle ne fonctionne plus car mysql me fait remarquer que je n'ai pas de clause GROUP BY dans ma requête.
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17
|
SELECT p.nom,p.id,sc.nbchap,sv.nbvid,svu.nbvu,DATE_FORMAT(svu.date_deb,"%d/%m/%Y") as date_deb ,r.score,DATE_FORMAT(r.date_pass,"%d/%m/%Y") as date_pass FROM produits p
LEFT JOIN (
SELECT c.id,c.idProduit,COUNT(*) as nbchap FROM chapitres c
)
sc ON sc.idProduit = p.id
LEFT JOIN (
SELECT v.idChapitre,COUNT(*) as nbvid FROM videos v
)
sv ON sv.idChapitre = sc.id
LEFT JOIN (
SELECT COUNT(*) as nbvu,MIN(vu.date_vu) as date_deb,vu.idProduit FROM vus vu WHERE vu.idUser = 1
)
svu ON svu.idProduit = p.id
LEFT JOIN tests t ON t.idProduit = p.id
LEFT JOIN results r ON r.idTest = t.id
WHERE idUser = 1 |
Le but de cette requête est de compter le nombre de chapitre, le nombre de vidéos, le nombre de vidéos vu ainsi que de trouver la date de la première vidéo vu.
Le problème étant que je n'ai pas de column sur la table vidéo me permettant de faire un group by me retournant le nombre de vidéo , je me retrouve toujours avec plusieurs lignes.
Auriez vous une idée ? Merci
PS : En pièce jointe un extrait du modèle de données