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