18-05-2011, 02:15 PM
Je suis d'accord avec toi sur les questions sur la performance; encore faut-il pouvoir y arriver!
Pour l'instant, j'ai trouvé comment faire pour savoir les bâtiments répondant aux prérequis (ceci n'inclue pas les bâtiments sans prérequis :'( => manque les bati 1 & 6)
Maintenant, coté performance, entre un sous-select est un group by... having; de deux maux, il faudra choisir le moindre
Pour l'instant, j'ai trouvé comment faire pour savoir les bâtiments répondant aux prérequis (ceci n'inclue pas les bâtiments sans prérequis :'( => manque les bati 1 & 6)
SELECT p.id_bati
FROM bati_user u
RIGHT JOIN prerequis p ON ( u.id_bati = p.id_prerequis
AND u.id_user =1 )
GROUP BY p.id_bati
HAVING avg( if( ifnull( u.niveau, 0 ) >= p.niveau_prerequis, 1, 0 ) ) =1
Maintenant, coté performance, entre un sous-select est un group by... having; de deux maux, il faudra choisir le moindre