Précédent   Forum des professionnels en informatique > Bases de données > Langage SQL
Langage SQL Forum d'entraide sur le langage SQL et sur les questions liées à la conception de schéma (DDL). Cours SQL
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 28/12/2011, 13h31   #1
Invité de passage
 
Homme
Étudiant
Inscription : décembre 2011
Messages : 12
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France

Informations professionnelles :
Activité : Étudiant
Secteur : High Tech - Matériel informatique

Informations forums :
Inscription : décembre 2011
Messages : 12
Points : 4
Points : 4
Par défaut SQL - SELECT exclusif par jointure

Bonjour,

Je tiens tout d'abord à préciser que je débute avec SQL.

J'utilise cette architecture :

ELEVES
id_eleve
nom_eleve

LIE (Pour lier les tables ELEVES et STAGES)
id_eleve
id_stage

STAGES
id_stage
nom_stage


Mon but est de réussir à sélectionner tous les noms de stages pour lesquels un élève n'est pas lié.

ex : 3 Stages Différents A,B et C
Un élève X lié aux Stages A et B.

Il faudra donc renvoyer le nom du stage C.

Je me suis servi de ce tuto pour essayer différentes jointures :
http://sqlpro.developpez.com/cours/sqlaz/jointures/

Mais je n'arrive pas à gérer les stages NON liés.

Merci d'avance pour tout aide x)
Zoups est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 28/12/2011, 13h38   #2
Expert Confirmé
 
Avatar de pc75
 
Inscription : septembre 2004
Messages : 2 805
Détails du profil
Informations personnelles :
Âge : 56
Localisation : France, Paris (Île de France)

Informations forums :
Inscription : septembre 2004
Messages : 2 805
Points : 3 003
Points : 3 003
Bonjour,

Si aucun élève n'a suivi un stage donné, il n'y aura pas d'enregistrement pour ce stage dans la table LIE.

Code :
1
2
 
SELECT nom_stage FROM STAGES WHERE id_stage NOT IN (SELECT id_stage FROM LIE)
__________________
Par principe, je ne réponds pas aux messages URGENT.
Il n'y a pas de choses urgentes, il n'y a que des choses en retard. (un inconnu)
pc75 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 28/12/2011, 13h50   #3
Invité de passage
 
Homme
Étudiant
Inscription : décembre 2011
Messages : 12
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France

Informations professionnelles :
Activité : Étudiant
Secteur : High Tech - Matériel informatique

Informations forums :
Inscription : décembre 2011
Messages : 12
Points : 4
Points : 4
Merci pour cette réponse rapide.

Je ne connaissais pas l'instruction NOT IN qui me sera surement utile.

Mais enfaite il faut sélectionner les stages non liés à UN élève ; Il y aura donc plusieurs élèves ; et un autre élève pourrait avoir ce stage dans la table LIE
Zoups est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 28/12/2011, 13h56   #4
Invité de passage
 
Homme
Étudiant
Inscription : décembre 2011
Messages : 12
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France

Informations professionnelles :
Activité : Étudiant
Secteur : High Tech - Matériel informatique

Informations forums :
Inscription : décembre 2011
Messages : 12
Points : 4
Points : 4
Réponse trouvé ; il me suffisait d'ajouter une condition WHERE dans le NOT IN :

Code :
1
2
3
4
5
SELECT nom_stage
  FROM STAGES
 WHERE id_stage NOT IN (SELECT id_stage
                          FROM LIE
                         WHERE id_eleve = XX)
Problème résolu,
Merci pour votre rapidité x)
Zoups est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 02h12.


 
 
 
 
Partenaires

Hébergement Web