IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

 SGBD Discussion :

du mal à comprendre un corrigé sur une requête SQL


Sujet :

SGBD

  1. #1
    Membre régulier
    Homme Profil pro
    Développeur Web
    Inscrit en
    Février 2008
    Messages
    207
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2008
    Messages : 207
    Points : 114
    Points
    114
    Par défaut du mal à comprendre un corrigé sur une requête SQL
    Bonjour,

    j'essaie de comprendre un corrigé sur une requête simple mais je bloque.

    Il est demandé de trouver tous les acteurs qui ont été partenaires de DENEUVE.

    Le professeur emploie les termes de sélection (= WHERE ou ON) et de projection (SELECT)

    On a les tables suivantes:

    LESFILMS (TITRE, PAYS, ANNEE, REALISATEUR, DUREE)
    LESACTEURS (TITRE, ACTEUR)

    D'abord, il isole C.Deneuve en faisant cela:
    LESACTEURS1 := selection (acteur = 'Deneuve'; LESACTEURS)

    Ensuite, j'ai l'impression qu'il:
    - sélectionne dans la table LESACTEURS la colonne des acteurs
    RES :=projection(LESACTEURS.acteur,

    - qui ont joué dans les films de DENEUVE
    selection (LESACTEURS1.titre = LESACTEURS.titre;

    et là, je me perds. Il sélectionne les acteurs qui ne sont pas C.Deneuve et C.Deneuve. Je ne comprends pas pourquoi. Pourquoi ne pas juste garder les acteurs différents de C.Deneuve qui ont joué dans les mêmes films qu'elle?

    Sa dernière ligne de code est:
    selection (acteur :='Deneuve'; LESACTEURS) X LESACTEURS1)))

    Je remets ici le code complet:

    LESACTEURS1 := selection (acteur = 'Deneuve'; LESACTEURS)
    RES :=projection (LESACTEURS.acteur,
    selection (LESACTEURS1.titre = LESACTEURS.titre;
    selection (acteur !='Deneuve'; LESACTEURS) X LESACTEURS1)))
    Je ne suis pas sûr de bien le traduire en SQL:

    LESACTEURS1 = SELECT ACTEUR FROM LESACTEURS
    WHERE ACTEUR = 'DENEUVE'

    SELECT LESACTEURS.ACTEUR
    FROM LESACTEURS
    CROSS JOIN
    LESACTEURS1.ACTEUR
    FROM LESACTEURS1
    WHERE LESACTEURS.TITRE = LESACTEURS1.TITRE
    AND ACTEUR <> 'DENEUVE'

    Quelqu'un pourrait-il éclairer ma lanterne, s'il vous plait?

    Merci par avance,
    Johnny3

  2. #2
    Rédacteur

    Avatar de SQLpro
    Homme Profil pro
    Expert bases de données / SQL / MS SQL Server / Postgresql
    Inscrit en
    Mai 2002
    Messages
    21 899
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Expert bases de données / SQL / MS SQL Server / Postgresql
    Secteur : Conseil

    Informations forums :
    Inscription : Mai 2002
    Messages : 21 899
    Points : 53 140
    Points
    53 140
    Billets dans le blog
    6
    Par défaut
    Plus exactement voici la réponse en SQL :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    SELECT A1.ACTEUR
    FROM   LESACTEURS AS A1
           CROSS JOIN LESACTEURS1 AS A2
    WHERE LESACTEURS.TITRE = LESACTEURS1.TITRE
    AND   A1.ACTEUR <> 'DENEUVE' 
    AND  A2.ACTEUR = 'DENEUVE'

    Cela peut s'exprimer de la façon suivante :
    Donner la liste des acteurs (selection) d'un film dans lequel pour le même film (jointure) DENEUVE a été actrice, mais sans prendre DENEUVE.

    En effet il se trouve par la plus simple logique que DENEUVE à joué dans les même films que ses partenaires !

    A +

  3. #3
    Membre régulier
    Homme Profil pro
    Développeur Web
    Inscrit en
    Février 2008
    Messages
    207
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2008
    Messages : 207
    Points : 114
    Points
    114
    Par défaut
    en effet, c'est plus simple! Merci beaucoup.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. aide sur une requête sql
    Par sanach dans le forum MS SQL Server
    Réponses: 10
    Dernier message: 27/02/2008, 16h43
  2. aide sur une requête sql
    Par sanach dans le forum Développement
    Réponses: 9
    Dernier message: 17/10/2007, 20h42
  3. Problème de SUM sur une requête SQL
    Par Lapicure dans le forum Requêtes et SQL.
    Réponses: 1
    Dernier message: 12/06/2007, 11h51
  4. Barre de progression sur une requète SQL
    Par Wilco dans le forum Bases de données
    Réponses: 4
    Dernier message: 28/04/2005, 14h20
  5. Pb sur une requête SQL (de champ vide)
    Par Marion dans le forum Langage SQL
    Réponses: 3
    Dernier message: 01/07/2004, 11h12

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo