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 :

Faire uen requete sur 2 tableaux??


Sujet :

Langage SQL

  1. #1
    Membre du Club
    Inscrit en
    Décembre 2002
    Messages
    88
    Détails du profil
    Informations forums :
    Inscription : Décembre 2002
    Messages : 88
    Points : 49
    Points
    49
    Par défaut Faire uen requete sur 2 tableaux??
    Bonjour,

    Je dispose de 2 tableaux SQL:

    TABLE de localisation

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    ID | classe| localisation | nompersonne
    TABLE contenant les personnes

    En fait, dans le tableau de localisation, la colonne nompersson contient l'ID de la table contenant les personnes.

    Ainsi, pour retrouve le nom de la personne, je lis la valeur nompersonne de la table localisation, et vu que cette colonne represente la personne, je peux trouver son firstname.

    Moi, ce que je veux faire, s'est un select, qui me permettrait d'obtenir de la table de localisation toutes les informations sur les personne dont le firstname commence par un A ou B ou C....

    Hors je tourne en rond dans ma concatenation de select.

    Qqq1 peut-il m'aider??

    Merci

  2. #2
    Membre habitué Avatar de Original Prankster
    Profil pro
    Inscrit en
    Juillet 2005
    Messages
    226
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations forums :
    Inscription : Juillet 2005
    Messages : 226
    Points : 192
    Points
    192
    Par défaut
    C'est pas une concaténation mais une jointure qu'il faut faire :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    SELECT Loc.ID, Loc.CLASSE, Loc.LOCALISATION, Loc.NOMPERSONNE, Pers.FIRSTNAME
    FROM Loc INNER JOIN Pers ON Loc.NOMPERSONNE= Pers.ID
    WHERE Pers.FIRSTNAME LIKE 'A%';
    ou

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    SELECT Loc.ID, Loc.CLASSE, Loc.LOCALISATION, Loc.NOMPERSONNE, Pers.FIRSTNAME
    FROM Loc, Pers
    WHERE Loc.NOMPERSONNE= Pers.ID
    AND Pers.FIRSTNAME LIKE 'A%';
    La première proposition est préférable, mais toutes les 2 représentent une équijointure.
    Ingénieur Génie Logiciel et Systèmes d'Information
    Management des Nouvelles Technologies

    Ecole Supérieure d'Ingénieurs de Luminy (ESIL), Marseille

  3. #3
    Membre du Club
    Inscrit en
    Décembre 2002
    Messages
    88
    Détails du profil
    Informations forums :
    Inscription : Décembre 2002
    Messages : 88
    Points : 49
    Points
    49
    Par défaut
    Merci enormement.

    Mais j'ai encore une question, puis je dans ce select trier mes resultats par ordre alphabetique des personnes, et par leur localisation par exemple?

  4. #4
    Membre habitué Avatar de Original Prankster
    Profil pro
    Inscrit en
    Juillet 2005
    Messages
    226
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations forums :
    Inscription : Juillet 2005
    Messages : 226
    Points : 192
    Points
    192
    Par défaut
    Bien sûr :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    SELECT Loc.ID, Loc.CLASSE, Loc.LOCALISATION, Loc.NOMPERSONNE, Pers.FIRSTNAME
    FROM Loc INNER JOIN Pers ON Loc.NOMPERSONNE= Pers.ID
    WHERE Pers.FIRSTNAME LIKE 'A%'
    GROUP BY Pers.FIRSTNAME ASC, Loc.LOCALISATION.ASC;
    Ingénieur Génie Logiciel et Systèmes d'Information
    Management des Nouvelles Technologies

    Ecole Supérieure d'Ingénieurs de Luminy (ESIL), Marseille

  5. #5
    Membre du Club
    Inscrit en
    Décembre 2002
    Messages
    88
    Détails du profil
    Informations forums :
    Inscription : Décembre 2002
    Messages : 88
    Points : 49
    Points
    49
    Par défaut
    Vraiment merci beaucoup, ça m'apprendra a oublier mon bouquin

    En plus ça va me faire economiser des lignes de code Perl

    Merci encore

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

Discussions similaires

  1. [MySQL] Faire une Requete sur les enregistrements du jour même
    Par skins dans le forum PHP & Base de données
    Réponses: 1
    Dernier message: 16/04/2010, 10h36
  2. Réponses: 8
    Dernier message: 08/09/2009, 14h46
  3. faire 2 requetes sur la meme table
    Par lince102 dans le forum Langage SQL
    Réponses: 7
    Dernier message: 15/10/2008, 12h47
  4. [vb6]faire une requete sur plusieurs tables
    Par Henry9 dans le forum VB 6 et antérieur
    Réponses: 6
    Dernier message: 23/07/2006, 02h06
  5. Réponses: 2
    Dernier message: 07/07/2005, 08h31

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