[Problème] Mysql & Select ... not in ... [Résolu]

shanicot 5 Messages postés mardi 22 juillet 2003Date d'inscription 16 septembre 2005 Dernière intervention - 15 sept. 2005 à 13:03 - Dernière réponse : shanicot 5 Messages postés mardi 22 juillet 2003Date d'inscription 16 septembre 2005 Dernière intervention
- 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 !!!"
Afficher la suite 

Votre réponse

6 réponses

Meilleure réponse
shanicot 5 Messages postés mardi 22 juillet 2003Date d'inscription 16 septembre 2005 Dernière intervention - 16 sept. 2005 à 13:14
3
Merci
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 !!!"

Merci shanicot 3

Avec quelques mots c'est encore mieux Ajouter un commentaire

Codes Sources a aidé 92 internautes ce mois-ci

Commenter la réponse de shanicot
malalam 10918 Messages postés lundi 24 février 2003Date d'inscription 2 mars 2010 Dernière intervention - 15 sept. 2005 à 13:12
0
Merci
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
Commenter la réponse de malalam
shanicot 5 Messages postés mardi 22 juillet 2003Date d'inscription 16 septembre 2005 Dernière intervention - 15 sept. 2005 à 13:20
0
Merci
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 !!!"
Commenter la réponse de shanicot
malalam 10918 Messages postés lundi 24 février 2003Date d'inscription 2 mars 2010 Dernière intervention - 15 sept. 2005 à 13:24
0
Merci
Alors fais un join sur les produits. Ca solutionnera :-) Mais c'est plus lent.
Commenter la réponse de malalam
shanicot 5 Messages postés mardi 22 juillet 2003Date d'inscription 16 septembre 2005 Dernière intervention - 15 sept. 2005 à 16:15
0
Merci
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 !!!"
Commenter la réponse de shanicot
J_G 1406 Messages postés mercredi 17 août 2005Date d'inscription 28 août 2007 Dernière intervention - 15 sept. 2005 à 18:10
0
Merci
Balance la solution... ça sert toujours



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



Bye
Commenter la réponse de J_G

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.