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.
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.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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 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
Partager