Requète SQL update et select imbriqué pour MySql
Vous souhaitez mettre à jour les informations d’un champs d’une table en utilisant les informations provenant d’une autre table.
MySql utilise une syntaxe qui n’est pas forcément la première qui nous vient à l’esprit lorsque l’on est habitué à d’autre serveur SQL.
Ce petit article est un aide mémoire personnel mais je ne doute pas qu’il servira à d’autres.Limite rencontré : MySql ne reconnait la syntaxe suivante pour les requêtes imbriquées
update tab1 set tab1.chp1 = (select chpA from tab2 where tab2.chpB = tab1.chp2)
Solution pour MySql : Il faut utiliser une jointure entre les deux tables
update tab1 join tab2 on tab1.chpJoin = tab2.chpJoin set tab1.chpDestination = tab2.chpSource
Pour aller plus loin : exemple de requête pour MySql avec where et plusieurs champs à mettre à jour dont une concaténation de chaîne de caractères (string)
update tab1 join tab2 on tab1.chpJoin = tab2.chpJoin set tab1.chpDestination1 = tab2.chpSource1, tab1.chpDestination2 = concat(tab2.chpSource1, '...') where tab2.chpFiltre = 'cequejeveux'






Commentaires récents