par
AB » 01 août 2012, 18:19
J'ai fait un petit jeu de test avec ces tables :
-- --------------------------------------------------------
--
-- Structure de la table `cod_db`
--
CREATE TABLE IF NOT EXISTS `cod_db` (
`id_cod` int(11) NOT NULL,
`cod_ape` varchar(100) CHARACTER SET utf8 NOT NULL,
`cod_sit` varchar(100) CHARACTER SET utf8 NOT NULL,
PRIMARY KEY (`id_cod`),
UNIQUE KEY `cod_ape` (`cod_ape`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1;
--
-- Contenu de la table `cod_db`
--
INSERT INTO `cod_db` (`id_cod`, `cod_ape`, `cod_sit`) VALUES
(0, '120A', '255555'),
(1, '130A', '355555'),
(2, '140A', '455555'),
(3, '150A', '555555');
-- --------------------------------------------------------
--
-- Structure de la table `sit_db`
--
CREATE TABLE IF NOT EXISTS `sit_db` (
`id_sit` int(11) NOT NULL,
`sit_ape` varchar(100) CHARACTER SET utf8 NOT NULL,
`sit_cod` varchar(100) CHARACTER SET utf8 NOT NULL,
PRIMARY KEY (`id_sit`),
UNIQUE KEY `sit_ape` (`sit_ape`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1;
--
-- Contenu de la table `sit_db`
--
INSERT INTO `sit_db` (`id_sit`, `sit_ape`, `sit_cod`) VALUES
(3, '120A', ''),
(2, '150A', ''),
(0, '140A', ''),
(1, '130A', ''),
(4, '144A', '');
ensuite si je rentre la requête ci-dessous, tout fonctionne comme attendu :
UPDATE SIT_DB
INNER JOIN COD_DB ON COD_DB.cod_ape = SIT_DB.sit_ape
SET SIT_DB.sit_cod = COD_DB.cod_sit
La colonne "sit_cod" de la table "sit_db" est bien remplie avec les valeurs "cod_sit" de la table "cod_db" quand la valeur du champ "cod_ape" de la table "cod_db" est égal à la valeur du champ "sit_ape" de la table "sit_db".
C'est bien ce que tu avais demandé, non ? essaies en copiant collant simplement mon jeu de test dans une fenêtre sql de phpmyadmin.
J'ai fait un petit jeu de test avec ces tables :
[sql]-- --------------------------------------------------------
--
-- Structure de la table `cod_db`
--
CREATE TABLE IF NOT EXISTS `cod_db` (
`id_cod` int(11) NOT NULL,
`cod_ape` varchar(100) CHARACTER SET utf8 NOT NULL,
`cod_sit` varchar(100) CHARACTER SET utf8 NOT NULL,
PRIMARY KEY (`id_cod`),
UNIQUE KEY `cod_ape` (`cod_ape`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1;
--
-- Contenu de la table `cod_db`
--
INSERT INTO `cod_db` (`id_cod`, `cod_ape`, `cod_sit`) VALUES
(0, '120A', '255555'),
(1, '130A', '355555'),
(2, '140A', '455555'),
(3, '150A', '555555');
-- --------------------------------------------------------
--
-- Structure de la table `sit_db`
--
CREATE TABLE IF NOT EXISTS `sit_db` (
`id_sit` int(11) NOT NULL,
`sit_ape` varchar(100) CHARACTER SET utf8 NOT NULL,
`sit_cod` varchar(100) CHARACTER SET utf8 NOT NULL,
PRIMARY KEY (`id_sit`),
UNIQUE KEY `sit_ape` (`sit_ape`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1;
--
-- Contenu de la table `sit_db`
--
INSERT INTO `sit_db` (`id_sit`, `sit_ape`, `sit_cod`) VALUES
(3, '120A', ''),
(2, '150A', ''),
(0, '140A', ''),
(1, '130A', ''),
(4, '144A', '');[/sql]
ensuite si je rentre la requête ci-dessous, tout fonctionne comme attendu :
[sql]UPDATE SIT_DB
INNER JOIN COD_DB ON COD_DB.cod_ape = SIT_DB.sit_ape
SET SIT_DB.sit_cod = COD_DB.cod_sit[/sql]
La colonne "sit_cod" de la table "sit_db" est bien remplie avec les valeurs "cod_sit" de la table "cod_db" quand la valeur du champ "cod_ape" de la table "cod_db" est égal à la valeur du champ "sit_ape" de la table "sit_db".
C'est bien ce que tu avais demandé, non ? essaies en copiant collant simplement mon jeu de test dans une fenêtre sql de phpmyadmin.