L2 Info : Bases de données
 
◃  Ch. 2 Interrogation des données avec SQL (DQL)  ▹
 

Les sous-requêtes dans WHERE (1/3)

  • Sous-requêtes retournant une seule valeur (sur une seule ligne)
  • la sous-requête est utilisée avec un opérateur simple (=, >=, LIKE, ....)
  • Exemples :
    -- nom du diplôme suivi par l'étudiant 20000001
    SELECT D.dip_nom FROM Diplome D
      WHERE  D.dip_id = (SELECT E.dip_id FROM Etudiant E
                          WHERE E.etud_num=20000001);
    
     dip_nom 
    ---------
     Licence
    (1 row)
    
    -- liste des étudiants suivant le même diplôme que l'étudiant 20000001
    SELECT E1.* FROM Etudiant E1
     WHERE E1.dip_id = (SELECT D.dip_id FROM Diplome D
                         WHERE D.dip_id = (SELECT E2.dip_id FROM Etudiant E2
                                            WHERE E2.etud_num=20000001));
    
    etud_num | etud_nom | etud_prenom |       etud_adresse        | etud_naissance | dip_id 
    ----------+----------+-------------+---------------------------+----------------+--------
     20000001 | Martin   | Jacques     | Résidence de la pommeraie | 1995-01-01     |      1
     20000002 | Martin   | Pierre      | Résidence de la pommeraie | 1995-10-21     |      1
    (2 rows)