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

PHP & Base de données Discussion :

Fusionner deux tables REGION et DEPARTEMENTS [MySQL]


Sujet :

PHP & Base de données

  1. #1
    Futur Membre du Club
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    9
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2005
    Messages : 9
    Points : 5
    Points
    5
    Par défaut Fusionner deux tables REGION et DEPARTEMENTS
    Bonjour, j'ai un petit problème que je n'arrive pas à démeler même en écumant les forums de la planète...

    J'ai une table REGIONS qui contient : num_region, nom (autrement dit numéro de la région et son nom)
    J'ai une table DEPARTEMENTS qui contient : num_departement,num_region, nom, nomregion (num dep, numero de sa régio, nom du département, nom de la région)

    Nomregion a été créé par mes soins et le but est de fusionner les deux tables afin que je récupére le nom de la région de la table REGIONS vers la table DEPARTEMENT à partir du numéro de région faisant le lien entre les deux tables.

    Je veux donc dans la même table ou une troisième éventuellement le numéro d'un département, son nom et la région associée afin de faire des tris plus simple pour moi qu'avec un INNER JOIN machin!!??

    !J'ai essayé :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    update departements.nomregion=regions.nom
    from departements, regions
    where departements.num_region=regions.num_region
    Mais cela ne fonctionne pas..... une idée?

    Merci à vous.

    Pour ceux que cela intéresse :
    SQL DEPARTEMENTS
    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
    116
    117
    118
    119
    120
    121
    122
    123
    124
    125
    126
    127
    128
    129
    130
    131
    -- phpMyAdmin SQL Dump
    -- version 3.1.5
    -- http://www.phpmyadmin.net
    --
    -- Serveur: ledefipaille.sql.free.fr
    -- Généré le : Jeu 17 Mars 2016 à 13:55
    -- Version du serveur: 5.0.83
    -- Version de PHP: 5.3.9
     
    SET SQL_MODE="NO_AUTO_VALUE_ON_ZERO";
     
    --
    -- Base de données: `ledefipaille`
    --
     
    -- --------------------------------------------------------
     
    --
    -- Structure de la table `departements`
    --
     
    CREATE TABLE IF NOT EXISTS `departements` (
      `num_departement` varchar(2) collate latin1_general_ci NOT NULL,
      `num_region` varchar(2) collate latin1_general_ci NOT NULL,
      `nom` char(32) character set utf8 NOT NULL,
      `nomregion` text character set utf8 NOT NULL,
      PRIMARY KEY  (`num_departement`),
      KEY `FK_DEPARTEMENT_REGION` (`num_region`)
    ) ENGINE=MyISAM DEFAULT CHARSET=latin1 COLLATE=latin1_general_ci;
     
    --
    -- Contenu de la table `departements`
    --
     
    INSERT INTO `departements` (`num_departement`, `num_region`, `nom`, `nomregion`) VALUES
    ('1', '22', 'Ain', '0'),
    ('2', '20', 'Aisne', '0'),
    ('3', '3', 'Allier', '0'),
    ('4', '18', 'Alpes de haute provence', '0'),
    ('5', '18', 'Hautes alpes', '0'),
    ('6', '18', 'Alpes maritimes', '0'),
    ('7', '22', 'Ardèche', '0'),
    ('8', '8', 'Ardennes', '0'),
    ('9', '16', 'Ariège', '0'),
    ('10', '8', 'Aube', '0'),
    ('11', '13', 'Aude', '0'),
    ('12', '16', 'Aveyron', '0'),
    ('13', '18', 'Bouches du rhône', '0'),
    ('14', '4', 'Calvados', '0'),
    ('15', '3', 'Cantal', '0'),
    ('16', '21', 'Charente', '0'),
    ('17', '21', 'Charente maritime', '0'),
    ('18', '7', 'Cher', '0'),
    ('19', '14', 'Corrèze', '0'),
    ('21', '5', 'Côte d''or', '0'),
    ('22', '6', 'Côtes d''Armor', '0'),
    ('23', '14', 'Creuse', '0'),
    ('24', '2', 'Dordogne', '0'),
    ('25', '10', 'Doubs', '0'),
    ('26', '22', 'Drôme', '0'),
    ('27', '11', 'Eure', '0'),
    ('28', '7', 'Eure et Loir', '0'),
    ('29', '6', 'Finistère', '0'),
    ('30', '13', 'Gard', '0'),
    ('31', '16', 'Haute garonne', '0'),
    ('32', '16', 'Gers', '0'),
    ('33', '2', 'Gironde', '0'),
    ('34', '13', 'Hérault', '0'),
    ('35', '6', 'Ile et Vilaine', '0'),
    ('36', '7', 'Indre', '0'),
    ('37', '7', 'Indre et Loire', '0'),
    ('38', '22', 'Isère', '0'),
    ('39', '10', 'Jura', '0'),
    ('40', '2', 'Landes', '0'),
    ('41', '7', 'Loir et Cher', '0'),
    ('42', '22', 'Loire', '0'),
    ('43', '3', 'Haute Loire', '0'),
    ('44', '19', 'Loire Atlantique', '0'),
    ('45', '7', 'Loiret', '0'),
    ('46', '16', 'Lot', '0'),
    ('47', '2', 'Lot et Garonne', '0'),
    ('48', '13', 'Lozère', '0'),
    ('49', '19', 'Maine et Loire', '0'),
    ('50', '4', 'Manche', '0'),
    ('51', '8', 'Marne', '0'),
    ('52', '8', 'Haute Marne', '0'),
    ('53', '19', 'Mayenne', '0'),
    ('54', '15', 'Meurthe et Moselle', '0'),
    ('55', '15', 'Meuse', '0'),
    ('56', '6', 'Morbihan', '0'),
    ('57', '15', 'Moselle', '0'),
    ('58', '5', 'Nièvre', '0'),
    ('59', '17', 'Nord', '0'),
    ('60', '20', 'Oise', '0'),
    ('61', '4', 'Orne', '0'),
    ('62', '17', 'Pas de Calais', '0'),
    ('63', '3', 'Puy de Dôme', '0'),
    ('64', '2', 'Pyrénées Atlantiques', '0'),
    ('65', '16', 'Hautes Pyrénées', '0'),
    ('66', '13', 'Pyrénées Orientales', '0'),
    ('67', '1', 'Bas Rhin', '0'),
    ('68', '1', 'Haut Rhin', '0'),
    ('69', '22', 'Rhône', '0'),
    ('70', '10', 'Haute Saône', '0'),
    ('71', '5', 'Saône et Loire', '0'),
    ('72', '19', 'Sarthe', '0'),
    ('73', '22', 'Savoie', '0'),
    ('74', '22', 'Haute Savoie', '0'),
    ('75', '12', 'Paris', '0'),
    ('76', '11', 'Seine Maritime', '0'),
    ('77', '12', 'Seine et Marne', '0'),
    ('78', '12', 'Yvelines', '0'),
    ('79', '21', 'Deux Sèvres', '0'),
    ('80', '20', 'Somme', '0'),
    ('81', '16', 'Tarn', '0'),
    ('82', '16', 'Tarn et Garonne', '0'),
    ('83', '18', 'Var', '0'),
    ('84', '18', 'Vaucluse', '0'),
    ('85', '19', 'Vendée', '0'),
    ('86', '21', 'Vienne', '0'),
    ('87', '14', 'Haute Vienne', '0'),
    ('88', '15', 'Vosges', '0'),
    ('89', '5', 'Yonne', '0'),
    ('90', '10', 'Territoire de Belfort', '0'),
    ('91', '12', 'Essonne', '0'),
    ('92', '12', 'Hauts de Seine', '0'),
    ('93', '12', 'Seine Saint Denis', '0'),
    ('94', '12', 'Val de Marne', '0'),
    ('95', '12', 'Val d''Oise', '0'),
    ('2a', '9', 'Corse du Sud', '0'),
    ('2b', '9', 'Haute Corse', '0');
    SQL REGIONS
    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
     
    -- phpMyAdmin SQL Dump
    -- version 3.1.5
    -- http://www.phpmyadmin.net
    --
    -- Serveur: ledefipaille.sql.free.fr
    -- Généré le : Jeu 17 Mars 2016 à 13:56
    -- Version du serveur: 5.0.83
    -- Version de PHP: 5.3.9
     
    SET SQL_MODE="NO_AUTO_VALUE_ON_ZERO";
     
    --
    -- Base de données: `ledefipaille`
    --
     
    -- --------------------------------------------------------
     
    --
    -- Structure de la table `regions`
    --
     
    CREATE TABLE IF NOT EXISTS `regions` (
      `num_region` varchar(2) collate latin1_general_ci NOT NULL,
      `nom` varchar(255) collate latin1_general_ci NOT NULL,
      PRIMARY KEY  (`num_region`)
    ) ENGINE=MyISAM DEFAULT CHARSET=latin1 COLLATE=latin1_general_ci;
     
    --
    -- Contenu de la table `regions`
    --
     
    INSERT INTO `regions` (`num_region`, `nom`) VALUES
    ('1', 'Alsace'),
    ('2', 'Aquitaine'),
    ('3', 'Auvergne'),
    ('4', 'Basse Normandie'),
    ('5', 'Bourgogne'),
    ('6', 'Bretagne'),
    ('7', 'Centre'),
    ('8', 'Champagne Ardenne'),
    ('9', 'Corse'),
    ('10', 'Franche Comte'),
    ('11', 'Haute Normandie'),
    ('12', 'Ile de France'),
    ('13', 'Languedoc Roussillon'),
    ('14', 'Limousin'),
    ('15', 'Lorraine'),
    ('16', 'Midi-Pyrénées'),
    ('17', 'Nord Pas de Calais'),
    ('18', 'Provence Alpes Côte d''Azur'),
    ('19', 'Pays de la Loire'),
    ('20', 'Picardie'),
    ('21', 'Poitou Charente'),
    ('22', 'Rhone Alpes');

  2. #2
    Modérateur
    Avatar de kolodz
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2008
    Messages
    2 211
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Avril 2008
    Messages : 2 211
    Points : 8 316
    Points
    8 316
    Billets dans le blog
    52
    Par défaut
    En mode update de la table existante en synthaxe "table unique":
    Code SQL : Sélectionner tout - Visualiser dans une fenêtre à part
    update departements set nomregion = (select nom from regions where regions.num_region = departements.num_region) where exists (select 1 from regions where regions.num_region = departements.num_region)
    En mode update de la table existante en synthaxe "multi tables" :
    Code SQL : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    UPDATE departements,regions SET items.nomregion =regions.nom 
    WHERE regions.num_region = departements.num_region;

    Documentation correspondante :
    http://dev.mysql.com/doc/refman/5.5/en/update.html


    En mode création d'un nouvelle table :
    Code SQL : Sélectionner tout - Visualiser dans une fenêtre à part
    create table departements_region as select departements.num_departement, departements.nom, departements.num_region, regions.nom as nom_region    from departements left join regions on regions.num_region = departements.num_region;
    Documentation correspondante :
    http://dev.mysql.com/doc/refman/5.5/...le-select.html

    Cordialement,
    Patrick Kolodziejczyk.
    Si une réponse vous a été utile pensez à
    Si vous avez eu la réponse à votre question, marquez votre discussion
    Pensez aux FAQs et aux tutoriels et cours.

  3. #3
    Futur Membre du Club
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    9
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2005
    Messages : 9
    Points : 5
    Points
    5
    Par défaut
    Patrick! je t'aimmeeuuuu! Ca y est! j'ai ma nouvelle table générée...

    Arg! réponse claire , précise, détaillée et fonctionnelle.... quoi de mieux?!

    MERCI! et à bientôt.

    Jean Marc

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

Discussions similaires

  1. Réponses: 5
    Dernier message: 15/10/2007, 15h49
  2. Fusionner deux tables
    Par benoit13 dans le forum Requêtes et SQL.
    Réponses: 2
    Dernier message: 26/07/2007, 08h41
  3. fusionner deux tables ?
    Par clov dans le forum Modélisation
    Réponses: 4
    Dernier message: 18/07/2007, 19h24
  4. Fusionner deux tables access
    Par lifemaker2025 dans le forum Access
    Réponses: 4
    Dernier message: 20/02/2007, 15h44
  5. Fusionner deux tables
    Par rdjema dans le forum Langage SQL
    Réponses: 5
    Dernier message: 30/11/2005, 18h42

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