[Problème] Mysql & Select ... not in ...

Résolu
shanicot Messages postés 5 Date d'inscription mardi 22 juillet 2003 Statut Membre Dernière intervention 16 septembre 2005 - 15 sept. 2005 à 13:03
shanicot Messages postés 5 Date d'inscription mardi 22 juillet 2003 Statut Membre Dernière intervention 16 septembre 2005 - 16 sept. 2005 à 13:14
Salut,



J'essaie de faire fonctionner cette requête sql sur un serveur qui ne prends pas en compte la subrequête après le NOT IN :



select *

from



DEPartement, RAYon

where



DEPartement.DEP_id = RAYon.DEP_id

and



RAYon.RAY_id not in



(select RAY_id from Product_RAyon
where PRO_id = "2")

order by



DEPartement.DEP_nom_fr, RAYon.RAY_nom_fr


Je ne sais pas comment réécrire cette requête afin qu'elle puisse fonctionner. Certainement avec une jointure mais comment !!?



Merci d'avance pour votre participation à la résolution de mon problème.



--


"2 choses sont infinies... L'Univers... et la bêtise humaine...
Mais en ce qui concerne l'Univers... ce n'est même pas certains !!!"
A voir également:

6 réponses

shanicot Messages postés 5 Date d'inscription mardi 22 juillet 2003 Statut Membre Dernière intervention 16 septembre 2005
16 sept. 2005 à 13:14
Voilà la requête SQL qui retourne le même résultat :



select

DEPartement.*, RAYon.*

FROM

RAYon

left join Product_RAyon

on

RAYon.RAY_id = Product_RAyon.RAY_id

and

PRO_id = "2",

DEPartement

where

Product_RAyon.RAY_id is null

and

DEPartement.DEP_id = RAYon.DEP_id

order by

DEPartement.DEP_nom_fr, RAYon.RAY_nom_fr


J'espère que cela pourra être utile à quiconque voudra transformer une requête NOT IN en requête LEFT JOIN !!!



A bientôt...



--


"2 choses sont infinies... L'Univers... et la bêtise humaine...
Mais en ce qui concerne l'Univers... ce n'est même pas certains !!!"
3
malalam Messages postés 10839 Date d'inscription lundi 24 février 2003 Statut Membre Dernière intervention 2 mars 2010 25
15 sept. 2005 à 13:12
Hello,



tu peux essayer avec la clause EXISTs : http://dev.mysql.com/doc/mysql/en/exists-and-not-exists-subqueries.html



Sinon, peut-être :



select *

from



DEPartement dep, RAYon ray, Product_RAyon prod

where



(dep.DEP_id = ray.DEP_id) and


(prod.PRO_id = '2')
and



(ray.RAY_id != prod.RAY_id)

order by



dep.DEP_nom_fr, ray.RAY_nom_fr
0
shanicot Messages postés 5 Date d'inscription mardi 22 juillet 2003 Statut Membre Dernière intervention 16 septembre 2005
15 sept. 2005 à 13:20
Merci quand même...



Mais ni EXISTS ne solutionne mon problème,



ni ta seconde solution ne retourne le résultat attendu...



Je continue de chercher de mon coté... mais merci encore...

"2 choses sont infinies... L'Univers... et la bêtise humaine...
Mais en ce qui concerne l'Univers... ce n'est même pas certains !!!"
0
malalam Messages postés 10839 Date d'inscription lundi 24 février 2003 Statut Membre Dernière intervention 2 mars 2010 25
15 sept. 2005 à 13:24
Alors fais un join sur les produits. Ca solutionnera :-) Mais c'est plus lent.
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
shanicot Messages postés 5 Date d'inscription mardi 22 juillet 2003 Statut Membre Dernière intervention 16 septembre 2005
15 sept. 2005 à 16:15
Problème résolu... je balancerais la réponse ce soir si cela peut servir à quelqu'un d'autre !



Merci encore !!!

"2 choses sont infinies... L'Univers... et la bêtise humaine...
Mais en ce qui concerne l'Univers... ce n'est même pas certains !!!"
0
J_G Messages postés 1406 Date d'inscription mercredi 17 août 2005 Statut Membre Dernière intervention 28 août 2007 10
15 sept. 2005 à 18:10
Balance la solution... ça sert toujours



Puis balance là aussi sur SQLfrance... il sont pauves en solutions là-bas ;)



Bye
0
Rejoignez-nous