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 :

Ajouter les données d'une colonne d'une table dans une autre table


Sujet :

Requêtes MySQL

  1. #1
    Membre éclairé
    Homme Profil pro
    Ingénieur en électrotechnique retraité
    Inscrit en
    Décembre 2008
    Messages
    1 579
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 72
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Ingénieur en électrotechnique retraité

    Informations forums :
    Inscription : Décembre 2008
    Messages : 1 579
    Points : 804
    Points
    804
    Par défaut Ajouter les données d'une colonne d'une table dans une autre table
    Bonjour,
    J'ai une base de données où ont été greffées des tables supplémentaires avec des colonnes identiques dans deux tables différentes. Pour les colonnes de même nom, je veux ajouter les données des colonnes de la table dat_addresses dans la table dat_families. Je ne sais pas comment concevoir la requête du fait qu'il s'agit de deux tables différentes.
    Définitions de 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
    CREATE TABLE IF NOT EXISTS `dat_addresses` (
      `id_user` int(10) UNSIGNED NOT NULL,
      `id` int(10) UNSIGNED NOT NULL AUTO_INCREMENT,
      `prenom` varchar(50) NOT NULL,
      `nom` varchar(50) NOT NULL,
      `adresse` varchar(80) NOT NULL,
      `pays` varchar(2) NOT NULL,
      `cp` varchar(10) NOT NULL,
      `ville` varchar(50) NOT NULL,
      `courriel` varchar(60) DEFAULT NULL,
      `tel_domicile` varchar(20) DEFAULT NULL,
      `tel_travail` varchar(25) DEFAULT NULL,
      `tel_portable` varchar(20) DEFAULT NULL,
      `naissance` date DEFAULT NULL,
      `notes` varchar(500) DEFAULT NULL,
      `selection` tinyint(1) NOT NULL DEFAULT '0',
      `update_date` datetime DEFAULT NULL ON UPDATE CURRENT_TIMESTAMP,
      `create_date` datetime DEFAULT CURRENT_TIMESTAMP,
      PRIMARY KEY (`id`),
      UNIQUE KEY `courriel` (`courriel`),
      UNIQUE KEY `tel_domicile` (`tel_domicile`),
      UNIQUE KEY `tel_portable` (`tel_portable`),
      KEY `id_user` (`id_user`)
    ) ENGINE=InnoDB AUTO_INCREMENT=163 DEFAULT CHARSET=utf8;
     
    CREATE TABLE IF NOT EXISTS `dat_families` (
      `id` int(10) UNSIGNED NOT NULL AUTO_INCREMENT,
      `id_address` int(10) UNSIGNED NOT NULL,
      `prenom` varchar(50) NOT NULL,
      `nom` varchar(50) NOT NULL,
      `courriel` varchar(60) DEFAULT NULL,
      `tel_travail` varchar(20) DEFAULT NULL,
      `tel_portable` varchar(20) DEFAULT NULL,
      `naissance` date DEFAULT NULL,
      `relation` int(10) UNSIGNED NOT NULL COMMENT '1-conjoint, 2-enfant, 3-enfant_du_cjt',
      PRIMARY KEY (`id`),
      KEY `id_address` (`id_address`)
    ) ENGINE=InnoDB AUTO_INCREMENT=98 DEFAULT CHARSET=utf8;

  2. #2
    Membre régulier
    Homme Profil pro
    Analyste-programmeur
    Inscrit en
    Décembre 2014
    Messages
    52
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 56
    Localisation : Canada

    Informations professionnelles :
    Activité : Analyste-programmeur
    Secteur : Conseil

    Informations forums :
    Inscription : Décembre 2014
    Messages : 52
    Points : 112
    Points
    112
    Par défaut
    Ça devrait ressembler à ceci:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    UPDATE dat_families
    INNER JOIN dat_addresses
    ON dat_families.id_address=dat_addresses.id
    SET col1 = dat_addresses.col1, col2 = dat_addresses.col2, col3 = dat_addresses.col3 ;

  3. #3
    Membre éclairé
    Homme Profil pro
    Ingénieur en électrotechnique retraité
    Inscrit en
    Décembre 2008
    Messages
    1 579
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 72
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Ingénieur en électrotechnique retraité

    Informations forums :
    Inscription : Décembre 2008
    Messages : 1 579
    Points : 804
    Points
    804
    Par défaut
    Je ne veux pas mettre à jour des données mais les insérer. J'ai essayé ceci mais ça ne fonctionne pas.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    INSERT INTO dat_families f
    INNER JOIN dat_addresses a
    ON f.id_address = a.id
    (id, id_address, prenom, nom, courriel, tel_travail, tel_portable, naissance, relation)
    VALUES (a.id, a.id, a.prenom, a.nom, a.courriel, a.tel_travail, a.tel_portable, a.naissance, 0)

  4. #4
    Membre régulier
    Homme Profil pro
    Analyste-programmeur
    Inscrit en
    Décembre 2014
    Messages
    52
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 56
    Localisation : Canada

    Informations professionnelles :
    Activité : Analyste-programmeur
    Secteur : Conseil

    Informations forums :
    Inscription : Décembre 2014
    Messages : 52
    Points : 112
    Points
    112
    Par défaut
    Un bref exemple de ce que vous avez et de ce que vous désirez aiderait grandement. Sinon, si je me fie à ce que j'ai compris, vous devez regarder du côté d'un INSERT...SELECT .

  5. #5
    Membre éclairé
    Homme Profil pro
    Ingénieur en électrotechnique retraité
    Inscrit en
    Décembre 2008
    Messages
    1 579
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 72
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Ingénieur en électrotechnique retraité

    Informations forums :
    Inscription : Décembre 2008
    Messages : 1 579
    Points : 804
    Points
    804
    Par défaut
    Comme il s'agit d'une opération à faire une seule fois, je me suis débrouillé avec phpMyAdmin. Cette discussion n'a cependant pas été inutile car elle m'a permis de mieux comprendre les deux possibilités (mise à jour à partir de plusieurs tables ou insertion à partir d'une autre table) que je connaissais mal. Merci.

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

Discussions similaires

  1. [AC-2007] Ajouter les données d'une table
    Par Crachover dans le forum Requêtes et SQL.
    Réponses: 2
    Dernier message: 07/06/2010, 22h40
  2. Réponses: 1
    Dernier message: 28/08/2008, 22h53
  3. Réponses: 3
    Dernier message: 09/04/2006, 12h58
  4. Réponses: 1
    Dernier message: 20/12/2005, 15h56
  5. récupérer juste les données d'une autre table
    Par rangernoir dans le forum Access
    Réponses: 5
    Dernier message: 13/09/2005, 14h52

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