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

Langage SQL Discussion :

Premiers pas, premiers problèmes


Sujet :

Langage SQL

  1. #1
    Membre averti Avatar de SPACHFR
    Profil pro
    Paaaaaa
    Inscrit en
    Février 2004
    Messages
    557
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Paaaaaa

    Informations forums :
    Inscription : Février 2004
    Messages : 557
    Points : 400
    Points
    400
    Par défaut Premiers pas, premiers problèmes
    Bonjour,

    Je débute totalement en SQL, et je n'arrive pas à trouver la syntaxe pour réaliser une requête entre deux tables à partir d'un identifiant issue d'une troisième table.
    Malgré la lecture des tutos SQL je n'arrive pas à trouver la syntaxe de la requête.
    Voici mes tables :

    Clients
    ID
    NAME

    Produits
    prd_ID
    prd_NAME

    licences
    IDclient
    IDproduit
    date

    J'ai comme donnée connue l'ID de la table clients. (mon critère).
    Ce que je cherche à faire est depuis cet ID de la table client, obtenir le nom des produits (table produits) et la date (table licences).
    Pour information j'utilise WAMPSERVEUR (MYSQL)

    Un petit coup de main et des explications m'aiderai à franchir ce premier pas.

    Merci

  2. #2
    Membre émérite Avatar de lola06
    Femme Profil pro
    Consultante en Business Intelligence
    Inscrit en
    Avril 2007
    Messages
    1 316
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 37
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Consultante en Business Intelligence
    Secteur : Service public

    Informations forums :
    Inscription : Avril 2007
    Messages : 1 316
    Points : 2 520
    Points
    2 520
    Par défaut
    Bonjour,

    Il faut que tu regarde du côté des jointures.

  3. #3
    Membre averti Avatar de SPACHFR
    Profil pro
    Paaaaaa
    Inscrit en
    Février 2004
    Messages
    557
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Paaaaaa

    Informations forums :
    Inscription : Février 2004
    Messages : 557
    Points : 400
    Points
    400
    Par défaut
    Merci pour cette réponse.
    J'ai effectivement regardé la partie tutoriel sur les JOINTURE.
    Finalement je suis arrivé à un résultat qui fonctionne (MYSQL)
    licences.IDclient étant mon critère de recherche.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    SELECT prd_name, vendor FROM produits INNER JOIN licences ON licences.IDproduit = produits.prd_ID WHERE licences.IDclient='2'
    J'ai un peu de mal à comprendre les différents types de JOINTURE....
    Ici j'ai utilisé INNER mais sans vraiment savoir pourquoi.

  4. #4
    Expert éminent
    Avatar de StringBuilder
    Homme Profil pro
    Chef de projets
    Inscrit en
    Février 2010
    Messages
    4 168
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Chef de projets
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2010
    Messages : 4 168
    Points : 7 421
    Points
    7 421
    Billets dans le blog
    1
    Par défaut
    Logiquement, "licences.IDclient" est un nombre.

    Donc dans la requête, on ne met pas de ' autour de la valeur littérale :
    Code sql : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    SELECT prd_name, vendor 
    FROM produits 
    INNER JOIN licences ON licences.IDproduit = produits.prd_ID 
    WHERE licences.IDclient=2

    Sorti de ça, ta requête à l'air bonne.

  5. #5
    Membre averti Avatar de SPACHFR
    Profil pro
    Paaaaaa
    Inscrit en
    Février 2004
    Messages
    557
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Paaaaaa

    Informations forums :
    Inscription : Février 2004
    Messages : 557
    Points : 400
    Points
    400
    Par défaut
    Merci pour cette précision car effectivement "licences.IDclient" est un nombre.
    Je découvre le SQL est à la lecture des tutoriaux, j'avoue que c'est plus complexe que je l'imaginai.

    Merci pour votre aide.

  6. #6
    Modérateur

    Avatar de CinePhil
    Homme Profil pro
    Ingénieur d'études en informatique
    Inscrit en
    Août 2006
    Messages
    16 799
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur d'études en informatique
    Secteur : Enseignement

    Informations forums :
    Inscription : Août 2006
    Messages : 16 799
    Points : 34 048
    Points
    34 048
    Billets dans le blog
    14
    Par défaut
    Ici j'ai utilisé INNER mais sans vraiment savoir pourquoi.
    INNER JOIN : jointure interne. Ne seront conservés par la jointure que les lignes des deux tables répondant à la condition de jointure.

    LEFT (ou RIGHT) OUTER JOIN : jointure externe. Toutes les lignes de la table de gauche (ou de droite) seront retournées avec, si elle existe la correspondance des lignes de l'autre table. S'il n'y a pas de correspondance, les colonnes de la table externe (celle de droite avec LEFT JOIN, celle de gauche avec RIGHT JOIN) afficheront NULL.

    Voir mon blog sur un piège des jointures externes et qui explique le principe des jointures par la même occasion.

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

Discussions similaires

  1. Premiers pas en UML : différents problèmes de débutant
    Par Spout dans le forum Cas d'utilisation
    Réponses: 4
    Dernier message: 28/09/2008, 17h04
  2. Réponses: 5
    Dernier message: 02/03/2008, 12h20
  3. [debutant] premier pas avec le SDK directX9
    Par arno2004 dans le forum DirectX
    Réponses: 6
    Dernier message: 27/05/2004, 21h03
  4. Réponses: 2
    Dernier message: 14/04/2004, 19h37

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