Bonjour,
Je viens de me rendre compte que MySQL n'autorisait pas de sous-requêtes dans la clause FROM pour la création de vues, c'est quand même très dommage... Du coup j'ai jeté un coup d'oeil sur les contournements possibles mais aucun ne m'emballe vraiment question performances... Globalement je veux arriver à ça (qui n'est donc pas possible) :
Comme alternative je n'ai trouvé que celle ci qui me paraît catastrophique question performances:
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
18
19
20 select US.idUser, IFNULL(SVT.score,0) + IFNULL(SC.score,0) as score, IFNULL(SVT.score,0) as scoreVoteTruth, IFNULL(SC.score,0) as scoreChallenge from user US left join (select idUser, sum(voteUp) as score from truth group by idUser) as SVT on SVT.idUser = US.idUser left join (select idUserTo, sum(5) as score from challenge group by idUserTo) as SC on SC.idUserTo = US.idUser
Avez-vous en tête une solution un peu plus décente?
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9 select US.idUser, IFNULL((select sum(voteUp) from truth where idUser = US.idUser),0) + IFNULL((select sum(5) from challenge where idUserTo = US.idUser),0) as score, IFNULL((select sum(voteUp) from truth where idUser = US.idUser),0) as scoreVoteTruth, IFNULL((select sum(5) from challenge where idUserTo = US.idUser),0) as scoreChallenge from user US
Merci d'avance.







Répondre avec citation






Partager