boninou
Messages postés59Date d'inscriptionlundi 17 janvier 2005StatutMembreDernière intervention16 mai 2012
-
3 mai 2006 à 17:38
Trougnouf
Messages postés1Date d'inscriptionmercredi 10 mai 2006StatutMembreDernière intervention10 mai 2006
-
10 mai 2006 à 19:34
Bonjour à tous !
Est il possible de simplifier cette requete ?
SELECT nom_equipe FROM equipe WHERE nom_equipe NOT IN (SELECT equipe1 FROM matchs where num_journee=1)
AND nom_equipe NOT IN (SELECT equipe2 FROM matchs where num_journee=1);
Mindiell
Messages postés559Date d'inscriptionjeudi 25 juillet 2002StatutMembreDernière intervention 5 septembre 20071 4 mai 2006 à 09:41
Qu'entends-tu par simplifier ?
Si tu entends gagner de la performance, je ne pense pas.
Si tu entends la rendre plus claire, je pense que ta solution est la plus claire.
J'ai ca a proposé, à la rigueur :
SELECT nom_equipe FROM equipe WHERE nom_equipe NOT IN (SELECT equipe1 FROM matchs where num_journee=1 UNION SELECT equipe2 FROM matchs where num_journee=1)
Tu veux peut-être supprimer le 'NOT IN' ?
Il faut nous dire ce que tu entends pas simplifier :)
Trougnouf
Messages postés1Date d'inscriptionmercredi 10 mai 2006StatutMembreDernière intervention10 mai 2006 10 mai 2006 à 19:34
Selon si la base de donnée est bien optimisée, NOT IN peut être très long : retourne toutes les valeurs de la table, avant de faire vérifier la condition.
Tu peux essayer avec un NOT EXISTS
SELECT nom_equipe FROM equipe AS f0
WHERE NOT EXISTS (SELECT 1 FROM matchs
WHERE num_journee = 1
AND equipe1 <> f0.nom_equipe
AND equipe2 <> f0.nom_equipe)