Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1258 connectés 

  FORUM HardWare.fr
  Programmation
  SQL/NoSQL

  [Résolu]Requete soustractive MySQL ?

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

[Résolu]Requete soustractive MySQL ?

n°1294573
TomZ
Posté le 30-01-2006 à 11:59:18  profilanswer
 

Bonjour à tous  :hello: ,
 
J'ai aujourd'hui un souci concernat une requête qui me donne du fil à retordre sous MySQL.
 
Avant tout voici la structure de mes deux tables ( structure qui ne doit pas être modifiée )
TABLE MATIERE
id_matiere
libelle
 
TABLE MATIERE_ELEVE
id_matiere
id_utilisateur
 
Ma requête est la suivante :
 
Je souhaiterais récupérer tous les libellés la table matiere qu'un utilisateur donné n'a pas choisi ( et donc vérifier par rapport à la table matiere_eleve ).
 
Merci par avance


Message édité par TomZ le 30-01-2006 à 12:23:29
mood
Publicité
Posté le 30-01-2006 à 11:59:18  profilanswer
 

n°1294577
anapajari
s/travail/glanding on hfr/gs;
Posté le 30-01-2006 à 12:02:58  profilanswer
 

avec une jointure externe tu dois t'en sortir:

Code :
  1. select
  2.    MATIERE.id_matiere
  3. , MATIERE.libelle
  4. from
  5. MATIERE
  6. left outer join MATIERE_ELEVE on ( MATIERE.id_matiere = MATIERE_ELEVE.id_matiere)
  7. where
  8.       MATIERE_ELEVE.id_matiere is null
  9. AND MTIERE_ELEVE.id_utilisateur = XXX

n°1294578
orafrance
Posté le 30-01-2006 à 12:03:33  profilanswer
 

select libelle from  MATIERE  
where id_matiere NOT IN (SELECT id_matiere FROM MATIERE_ELEVE where  id_utilisateur = ?);

n°1294584
TomZ
Posté le 30-01-2006 à 12:10:32  profilanswer
 

J'avais déjà fait exactement la même requête mais dès que j'ajoute la condition sur l'id_utilisateur à savoir
 

Code :
  1. matiere.id_utilisateur = valeur


la requête s'effectue correctement mais ne renvoie rien. Alors qu'en enlevant le test sur l'id_utilisateur elle renvoie des champs.
 
NB : ma version de MySQL ne permet pas le NOT IN et cette version m'est imposée

Message cité 1 fois
Message édité par TomZ le 30-01-2006 à 12:17:01
n°1294593
TomZ
Posté le 30-01-2006 à 12:19:18  profilanswer
 

La requête a été trouve au final
 

Code :
  1. select matiere.id_matiere , matiere.libelle from matiere
  2. left outer join matiere_eleve
  3. on ( matiere.id_matiere = matiere_eleve.id_matiere) AND matiere_eleve.id_utilisateur =valeur
  4. where matiere_eleve.id_matiere is null


 
En fait,  la where est seulement sur id_matiere null  
En condition de jointure je devais rajouter la condition sur l'ID et pas dans le where
 
Merci à tous


Message édité par TomZ le 30-01-2006 à 12:21:33
n°1294594
anapajari
s/travail/glanding on hfr/gs;
Posté le 30-01-2006 à 12:19:46  profilanswer
 

TomZ a écrit :

J'avais déjà fait exactement la même requête mais dès que j'ajoute la condition sur l'id_utilisateur à savoir....


Ouais c'est normal en fait :o
 
Mets la condition sur le id_utilisateur dans le "on" de la jointure

n°1294596
TomZ
Posté le 30-01-2006 à 12:21:53  profilanswer
 

Hopla merci trouvé en meme temps :)
Merci de votre aide


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  SQL/NoSQL

  [Résolu]Requete soustractive MySQL ?

 

Sujets relatifs
[resolu]global hotkeysRappatrier une BDD MySQL ...
Mesurer le temps d'exécution d'une requête XQueryRequêtes avec mysql sur 2 tables
erreur mysql ? connait pas!!![MySQL] Utiliser une base MySQL sur un ordinateur n'ayant pas MySQL ?
[resolu] transmission de variables à un CSS via PHP[JS][Résolu]Recopie d'un tableau
[résolu] ArrayList enregistre mal[PHP/MYSQL] changer juste une valeure d'un bd
Plus de sujets relatifs à : [Résolu]Requete soustractive MySQL ?


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR