Wiliwilliam | SQL UPDATE avec des colonnes de deux tables différentes |
1 #1 |
---|---|---|
La loi c'est moi
Inscrit: 07/04/2012 19:19
Post(s): 38301
Karma: 19026 |
J'aimerais update la colonne "COLa" d'une table "A" en fonction d'une colonne "COLb" de la table "B", les deux tables sont dans la même base.
j'ai fait
L'idée étant de garder COLa identique à COLb en cas de changement. nada, s'est rien passé et m'a dit que la clause WHERE => B.COLb n'existe pas J'ai chié, mais où? NB: les COLa sont uniques mais j'ai aussi une colonne commune avec un ID unique (IDa, IDb) et identique entre chaque table donc j'ai testé ça:
mais c'est le même délire, il ne comprend pas la close WHERE qui provient de la table qui n'est pas update
Contribution le : 12/07/2018 14:44
|
|
_________________
>> Récompenses si tu passes en article << |
||
Signaler |
Koreus | 0 #2 |
|
---|---|---|
Webhamster
Inscrit: 03/07/2002 23:58
Post(s): 75369
Karma: 36948 |
Il te manque une clause dans ton WHERE non ?
Je suppose que tes deux tables ont plusieurs lignes. Comment il peut savoir quel COLb il doit prendre parmi toutes les lignes de B Edit : je viens de voir ta deuxième requête, essaie peut-être d'afficher les valeurs COLb et COLa avec un SELECT pour voir si ton WHERE est bien construit Edit2 : et cette requête marche ?
Contribution le : 12/07/2018 17:33
|
|
_________________
|
||
Signaler |
Wiliwilliam | 0 #3 |
|
---|---|---|
La loi c'est moi
Inscrit: 07/04/2012 19:19
Post(s): 38301
Karma: 19026 |
@Koreus
Champ 'B.ID.b' inconnu dans where clause. Bon de toute façon j'ai contourné le problème en comparant les deux colonnes en PHP quand COLa et COLb sont chargées dans une $_SESSION. Mais j'avoue que je serai curieux de comprendre comment ça marche.
Contribution le : 12/07/2018 18:02
|
|
_________________
>> Récompenses si tu passes en article << |
||
Signaler |
Koreus | 0 #4 |
|
---|---|---|
Webhamster
Inscrit: 03/07/2002 23:58
Post(s): 75369
Karma: 36948 |
@Wiliwilliam B.ID.b, y a pas un point de trop ?
Contribution le : 12/07/2018 18:31
|
|
_________________
|
||
Signaler |
Wiliwilliam | 0 #5 |
|
---|---|---|
La loi c'est moi
Inscrit: 07/04/2012 19:19
Post(s): 38301
Karma: 19026 |
faute de frappe dans le message non c'est pas ça le soucis
Contribution le : 12/07/2018 18:35
|
|
_________________
>> Récompenses si tu passes en article << |
||
Signaler |
Invité | 1 #6 |
|
---|---|---|
FantômeInvité
|
Manque pas un FROM ?
Contribution le : 12/07/2018 18:50
|
|
Signaler |
CrazyCow | 2 #7 |
|
---|---|---|
Je poste trop
Inscrit: 29/07/2008 00:26
Post(s): 18991
Karma: 29871 |
Citation :
Si je pense. Quand tu utilises un UPDATE sur plusieurs tables, il faut formuler la requête comme ça :
Contribution le : 12/07/2018 18:59
|
|
_________________
K TROPHY “ À un moment donné, il faut lâcher prise. Claude François |
||
Signaler |
-Flo- | 1 #8 |
|
---|---|---|
Je poste trop
Inscrit: 08/01/2005 13:41
Post(s): 15190
Karma: 12562 |
Non, pas de FROM dans un UPDATE, les tables sont ciblées directement par l'UPDATE lui-même.
Dans ton exemple c'est donc UPDATE A INNER JOIN B ON A.IDa = B.IDb SET A.COLa=B.COLb WHERE A.COLa!=B.COLb
Contribution le : 12/07/2018 21:33
|
|
_________________
|
||
Signaler |
Wiliwilliam | 0 #9 |
|
---|---|---|
La loi c'est moi
Inscrit: 07/04/2012 19:19
Post(s): 38301
Karma: 19026 |
Le from ne marche pas.
@-Flo- niquel, ça a parfaitement bien marché. ('faudrait que je liste le nombre de topic où tu m'as sorti de la galère) Merci à tous, pour vos suggestions! J'ai encore appris tout un tas de choses!
Contribution le : 13/07/2018 16:57
|
|
_________________
>> Récompenses si tu passes en article << |
||
Signaler |
CrazyCow | 1 #10 |
|
---|---|---|
Je poste trop
Inscrit: 29/07/2008 00:26
Post(s): 18991
Karma: 29871 |
Je pensais que c'était une requête pour SQL Server, mais c'est pour MySQL si je comprends bien.
Contribution le : 13/07/2018 17:09
|
|
_________________
K TROPHY “ À un moment donné, il faut lâcher prise. Claude François |
||
Signaler |
Wiliwilliam | 1 #11 |
|
---|---|---|
La loi c'est moi
Inscrit: 07/04/2012 19:19
Post(s): 38301
Karma: 19026 |
@CrazyCow oui dsl, j'ai oublié de le préciser.
Contribution le : 13/07/2018 17:18
|
|
_________________
>> Récompenses si tu passes en article << |
||
Signaler |
Le sujet est verrouillé