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

Requêtes MySQL Discussion :

Requête multi table [MySQL-5.6]


Sujet :

Requêtes MySQL

  1. #1
    Futur Membre du Club
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2016
    Messages
    28
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Août 2016
    Messages : 28
    Points : 5
    Points
    5
    Par défaut Requête multi table
    Bonjour,

    J'ai dans mon SQL une table personne et une table utilisateur dépendant de la table personne et je souhaites aire une requête qui m'afficheras TOUTE la table personne avec l'utilisateur associer à la personne si il y en as un et 'NULL' si non.
    Un exemple étant plus parlant, voici un exemple du résultat attendus
    Table personne:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    +---------------+------------+--------------+
    |prenom_personne|nom_personne|login_personne|
    +---------------+------------+--------------+
    |prenom1        |nom1        |login1        |
    |prenom2        |nom2        |login2        |
    |prenom3        |nom3        |login3        |
    |prenom4        |nom4        |login4        |
    |prenom5        |nom5        |login5        |
    +---------------+------------+--------------+
    Table utilisateur
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    +--------------+---------------+
    |login_personne|mdp_utilisateur|
    +--------------+---------------+
    |login1        |mdp1           |
    |login4        |mdp4           |
    +--------------+---------------+
    Résultat attendus de la requête
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    +---------------+------------+--------------+---------------+
    |prenom_personne|nom_personne|login_personne|mdp_utilisateur|
    +---------------+------------+--------------+---------------+
    |prenom1        |nom1        |login1        |mdp1           |
    |prenom2        |nom2        |login2        |NULL           |
    |prenom3        |nom3        |login3        |NULL           |
    |prenom4        |nom4        |login4        |mdp4           |
    |prenom5        |nom5        |login5        |NULL           |
    +---------------+------------+--------------+---------------+
    J’espère avoir été assez précis dans ma demande,
    Merci d'avance

  2. #2
    Modérateur
    Avatar de al1_24
    Homme Profil pro
    Retraité
    Inscrit en
    Mai 2002
    Messages
    9 080
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 63
    Localisation : France, Val de Marne (Île de France)

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

    Informations forums :
    Inscription : Mai 2002
    Messages : 9 080
    Points : 30 803
    Points
    30 803
    Par défaut
    Si j'ai bien compris, c'est une jointure externe que tu veux faire.
    Modérateur Langage SQL
    Règles du forum Langage SQL à lire par tous, N'hésitez pas à consulter les cours SQL
    N'oubliez pas le bouton et pensez aux balises
    [code]
    Si une réponse vous a aidé à résoudre votre problème, n'oubliez pas de voter pour elle en cliquant sur
    Aide-toi et le forum t'aidera : Un problème exposé sans mentionner les tentatives de résolution infructueuses peut laisser supposer que le posteur attend qu'on fasse son travail à sa place... et ne donne pas envie d'y répondre.

  3. #3
    Futur Membre du Club
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2016
    Messages
    28
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Août 2016
    Messages : 28
    Points : 5
    Points
    5
    Par défaut
    C'est exactement ça merci beaucoup ^^
    Je passe le sujet en résolu

  4. #4
    Expert éminent sénior Avatar de Artemus24
    Homme Profil pro
    Agent secret au service du président Ulysses S. Grant !
    Inscrit en
    Février 2011
    Messages
    6 380
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Agent secret au service du président Ulysses S. Grant !
    Secteur : Finance

    Informations forums :
    Inscription : Février 2011
    Messages : 6 380
    Points : 19 062
    Points
    19 062
    Par défaut
    Salut Mewen Seyun.

    Voici un exemple de ce que tu attends en fonction de tes tables :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    --------------
    SET AUTOCOMMIT = 0
    --------------
     
    --------------
    START TRANSACTION
    --------------
     
    --------------
    DROP DATABASE IF EXISTS `base`
    --------------
     
    --------------
    CREATE DATABASE `base`
        DEFAULT CHARACTER SET `latin1`
        DEFAULT COLLATE       `latin1_general_ci`
    --------------
     
    --------------
    DROP TABLE IF EXISTS `personne`
    --------------
     
    --------------
    CREATE TABLE `personne`
    ( `id_personne`      integer unsigned not null auto_increment primary key,
      `prenom_personne`  varchar(255)     not null,
      `nom_personne`     varchar(255)     not null,
      `login_personne`   varchar(255)     not null,
      unique index `idx` (`login_personne`)
    ) ENGINE=InnoDB
      DEFAULT CHARSET=`latin1` COLLATE=`latin1_general_ci`
      ROW_FORMAT=COMPRESSED
    --------------
     
    --------------
    insert into `personne` (`prenom_personne`,`nom_personne`,`login_personne`) values
      ('prénom_1','nom_1','login_1'),
      ('prénom_2','nom_2','login_2'),
      ('prénom_3','nom_3','login_3'),
      ('prénom_4','nom_4','login_4'),
      ('prénom_5','nom_5','login_5')
    --------------
     
    --------------
    select * from personne
    --------------
     
    +-------------+-----------------+--------------+----------------+
    | id_personne | prenom_personne | nom_personne | login_personne |
    +-------------+-----------------+--------------+----------------+
    |           1 | prénom_1        | nom_1        | login_1        |
    |           2 | prénom_2        | nom_2        | login_2        |
    |           3 | prénom_3        | nom_3        | login_3        |
    |           4 | prénom_4        | nom_4        | login_4        |
    |           5 | prénom_5        | nom_5        | login_5        |
    +-------------+-----------------+--------------+----------------+
    --------------
    DROP TABLE IF EXISTS `utilisateur`
    --------------
     
    --------------
    CREATE TABLE `utilisateur`
    ( `id_utilisateur`   integer unsigned not null auto_increment primary key,
      `login_personne`   varchar(2555)    not null,
      `mdp_utilisateur`  varchar(2555)    not null,
      index `idx2` (`login_personne`)
    ) ENGINE=InnoDB
      DEFAULT CHARSET=`latin1` COLLATE=`latin1_general_ci`
      ROW_FORMAT=COMPRESSED
    --------------
     
    --------------
    insert into `utilisateur` (`login_personne`,`mdp_utilisateur`) values
      ('login_1', md5('password_1')),
      ('login_5', md5('password_5'))
    --------------
     
    --------------
    select * from utilisateur
    --------------
     
    +----------------+----------------+----------------------------------+
    | id_utilisateur | login_personne | mdp_utilisateur                  |
    +----------------+----------------+----------------------------------+
    |              1 | login_1        | 57210b12af5e06ad2e6e54a93b1465aa |
    |              2 | login_5        | fc5889dcfb42598c8b3ddc543fabca43 |
    +----------------+----------------+----------------------------------+
    --------------
    select           *
               from  personne     as p
     
    left outer join  utilisateur  as u
                 on  u.login_personne = p.login_personne
     
           order by  id_personne
    --------------
     
    +-------------+-----------------+--------------+----------------+----------------+----------------+----------------------------------+
    | id_personne | prenom_personne | nom_personne | login_personne | id_utilisateur | login_personne | mdp_utilisateur                  |
    +-------------+-----------------+--------------+----------------+----------------+----------------+----------------------------------+
    |           1 | prénom_1        | nom_1        | login_1        |              1 | login_1        | 57210b12af5e06ad2e6e54a93b1465aa |
    |           2 | prénom_2        | nom_2        | login_2        |           NULL | NULL           | NULL                             |
    |           3 | prénom_3        | nom_3        | login_3        |           NULL | NULL           | NULL                             |
    |           4 | prénom_4        | nom_4        | login_4        |           NULL | NULL           | NULL                             |
    |           5 | prénom_5        | nom_5        | login_5        |              2 | login_5        | fc5889dcfb42598c8b3ddc543fabca43 |
    +-------------+-----------------+--------------+----------------+----------------+----------------+----------------------------------+
    --------------
    COMMIT
    --------------
     
    --------------
    SET AUTOCOMMIT = 1
    --------------
     
    Appuyez sur une touche pour continuer...
    @+
    Si vous êtes de mon aide, vous pouvez cliquer sur .
    Mon site : http://www.jcz.fr

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

Discussions similaires

  1. Requête multi-tables :S
    Par plutonium719 dans le forum Développement
    Réponses: 4
    Dernier message: 12/03/2008, 16h41
  2. modifier des données dans une requête multi table
    Par Bluman dans le forum Requêtes et SQL.
    Réponses: 4
    Dernier message: 05/02/2008, 10h00
  3. PB requête multi-tables
    Par duchnok dans le forum Langage SQL
    Réponses: 1
    Dernier message: 04/01/2008, 12h25
  4. Requête multi-tables avec BDE
    Par Ptit_bouchon dans le forum Bases de données
    Réponses: 9
    Dernier message: 03/01/2008, 12h58
  5. problème de requête multi-table
    Par dergips dans le forum Requêtes et SQL.
    Réponses: 2
    Dernier message: 23/07/2007, 18h21

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