J'ai lu divers articles avant cela. mais aucun d'eux ne semblait fonctionner pour moi.
Comme le titre le suggère, j'essaie de mettre à jour une colonne à partir d'une colonne d'un autre tableau. Je ne me souviens pas avoir eu de problèmes avec ça avant ..
1. Tableau: user_settings.contact_id, je souhaite mettre à jour avec contacts.id where (user_settings.account_id == contacts_account_id)
2. Auparavant, les contacts étaient liés aux comptes d'utilisateurs via l'ID de compte. Cependant, nous voulons maintenant associer un contact à user_settings
via contacts.id
Voici quelques exemples de ce que j'ai essayé, mais aucun n'a fonctionné. Je serais intéressé par A.) Pourquoi ils ne fonctionnent pas et B.) Que dois-je faire à la place.
Exemple A:
UPDATE user_settings
SET user_settings.contact_id = contacts.id
FROM user_settings
INNER JOIN contacts ON user_settings.account_id = contacts.account_id
Exemple B:
UPDATE (SELECT A.contact_id id1, B.id id2
FROM user_settings A, contacts B
WHERE user_settings.account_id = contacts.account_id)
SET id1 = id2
Exemple C:
UPDATE user_settings
SET user_settings.contact_id = (SELECT id
FROM contacts
WHERE (user_settings.account_id = contacts.account_id)
WHERE EXISTS ( user_settings.account_id = contacts.account_id )
J'ai l'impression que mon cerveau s'est arrêté sur moi et j'apprécierais tout choc pour le redémarrer. Merci :)
Selon la documentation MySQL, pour faire une mise à jour de table croisée, vous ne pouvez pas utiliser une jointure (comme dans d'autres bases de données), mais utilisez plutôt une clause where:
http://dev.mysql.com/doc/refman/5.0/en/update.html
Je pense que quelque chose comme ça devrait fonctionner:
UPDATE User_Settings, Contacts
SET User_Settings.Contact_ID = Contacts.ID
WHERE User_Settings.Account_ID = Contacts.Account_ID
Update tabelName Set SanctionLoad=SanctionLoad Where ConnectionId=ConnectionID
go
update tabelName Set meterreading=meterreading where connectionid=connectionid
go
update tabelName set customername=setcustomername where customerid=customerid