J'ai deux tables MySQL, voici comment ils sont structurés:MYSQL: table de mise à jour avec des valeurs d'une autre table liée
table foo(
foo_id varchar(32),
field1 varchar(32),
field2 varchar(32),
bar_id varchar(32)
);
table bar(
bar_id varchar(32),
field1 varchar(32),
field2 varchar(32)
);
Je voudrais mettre à jour la table foo
d'avoir les mêmes valeurs pour field1
et field2
comme le tableau bar
. J'ai essayé les deux requêtes suivantes, toutes deux fonctionnent sans erreur, mais ne me reçois pas les résultats que je veux:
UPDATE foo LEFT JOIN bar ON foo.bar_id = bar.bar_id
SET foo.field1 = bar.field1 AND foo.field2 = bar.field2;
également
UPDATE foo,bar SET foo.field1 = bar.field1
AND foo.field2 = bar.field2 WHERE foo.bar_id = bar.bar_id
mais ni travail. Qu'est-ce que j'oublie ici?
Je ne trouve pas faux dans vos requêtes. Je suggère d'utiliser l'instruction select et de trouver les lignes qui seront mises à jour par la déclaration ci-dessus. comme: 'select foo. *, barre. * à partir de foo BARRE DE JOINTOIEMENT ON foo.bar_id = bar.bar_id SET foo.field1 = bar.field1 ET foo.field2 = bar.field2;' – KoolKabin
@KoolKabin dans MySQL vous pouvez 't à la fois sélectionner et mettre à jour une table dans la même requête – GSto
bien qu'il ne s'agissait pas de faire la sélection et la mise à jour dans la même requête. il faisait sélectionner dans une déclaration et vérifier le resultset et si le resultset est bien alors exécutez la mise à jour – KoolKabin