Bonjour tout le monde !
Voilà, je me pose de sérieuses questions sur le fonctionnement des sous-requêtes !!! En effet, voici ma requête (inutile de la comprendre, juste la syntaxe) :
Code :
- SELECT idMag, idAffilie, Ville, Adresse
- FROM MagParAffilie
- WHERE Email = (SELECT email FROM abonnes WHERE codeuser = 'jerome')
- AND idMag <> 05114
- AND idMag NOT IN (
- SELECT DISTINCT idMag FROM cmd_contenu WHERE idCommande IN (SELECT DISTINCT idCommande FROM cmd_Commande WHERE Date >= NOW()))
|
Quand je laisse ma requête tel quel elle ne retourne pas le résultat escompté, mais quand je remplace ma seconde sous-requete par son résultat ça fonctionne, et c'est là que je ne comprends pas !!
Je reformule, le résultat de ma seconde sous-requete est : 05111
Code :
- SELECT DISTINCT idMag FROM cmd_contenu WHERE idCommande IN (SELECT DISTINCT idCommande FROM cmd_Commande WHERE Date >= NOW()) => donne 05111
|
Quand je la remplace par sa valeur donc :
Code :
- SELECT idMag, idAffilie, Ville, Adresse
- FROM MagParAffilie
- WHERE Email = (SELECT email FROM abonnes WHERE codeuser = 'jerome')
- AND idMag <> 05114
- AND idMag NOT IN (05111)
|
Et là je ne comprends pas car elle me retourne le résultat escompté...
Si quelqu'un peut m'éclairer car franchement je vois pas très très bien la différence...
Merci d'avance