comment on fait un update avec une jointure?
par exemple j'ai des clients et des commandes...
j'aimerai mettre a jour un champ dans le table commande pour tous les
clients dont le code postal est 75012
update commande set blabal = 1 where idclient in (select idclient from
client where codepost = 75012);
fonctionne (enfin je suppose j'ai pas testé...)
je me demande juste comment on fait avec un jointure??? c'est a dire sans le
IN !
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
Ph. B.
Etienne SOBOLE a questionné:
salut.
comment on fait un update avec une jointure? par exemple j'ai des clients et des commandes... j'aimerai mettre a jour un champ dans le table commande pour tous les clients dont le code postal est 75012
update commande set blabal = 1 where idclient in (select idclient from client where codepost = 75012); fonctionne (enfin je suppose j'ai pas testé...)
je me demande juste comment on fait avec un jointure??? c'est a dire sans le IN !
Comme ça:
UPDATE commande SET blabla = 1 FROM commande co INNER JOIN client cl ON cl.idclient = co.idclient WHERE cl.codepost = 75012;
merci Etienne
Etienne SOBOLE a questionné:
salut.
comment on fait un update avec une jointure?
par exemple j'ai des clients et des commandes...
j'aimerai mettre a jour un champ dans le table commande pour tous les
clients dont le code postal est 75012
update commande set blabal = 1 where idclient in (select idclient from
client where codepost = 75012);
fonctionne (enfin je suppose j'ai pas testé...)
je me demande juste comment on fait avec un jointure??? c'est a dire sans le
IN !
Comme ça:
UPDATE commande
SET blabla = 1
FROM commande co
INNER JOIN client cl ON cl.idclient = co.idclient
WHERE cl.codepost = 75012;
comment on fait un update avec une jointure? par exemple j'ai des clients et des commandes... j'aimerai mettre a jour un champ dans le table commande pour tous les clients dont le code postal est 75012
update commande set blabal = 1 where idclient in (select idclient from client where codepost = 75012); fonctionne (enfin je suppose j'ai pas testé...)
je me demande juste comment on fait avec un jointure??? c'est a dire sans le IN !
Comme ça:
UPDATE commande SET blabla = 1 FROM commande co INNER JOIN client cl ON cl.idclient = co.idclient WHERE cl.codepost = 75012;
merci Etienne
Etienne SOBOLE
UPDATE commande SET blabla = 1 FROM commande co INNER JOIN client cl ON cl.idclient = co.idclient WHERE cl.codepost = 75012;
Byzarre. la syntaxe a l'air d'etre comprise, mais toutes mes commandes sont modifiées dans ce cas... Etienne
UPDATE commande
SET blabla = 1
FROM commande co
INNER JOIN client cl ON cl.idclient = co.idclient
WHERE cl.codepost = 75012;
Byzarre. la syntaxe a l'air d'etre comprise, mais toutes mes commandes sont
modifiées dans ce cas...
Etienne
UPDATE commande SET blabla=1 JOIN client cl using(idclient) WHERE cl.codepost='75012';
Nan. marche pas non plus. bon je vais rester avec mon SELECT imbriqué ;)
C'est peut etre pas possible sous postgres...
Etienne
Michael
Le 01/02/2005 13:11, Etienne SOBOLE a écrit :
comment on fait un update avec une jointure? par exemple j'ai des clients et des commandes... j'aimerai mettre a jour un champ dans le table commande pour tous les clients dont le code postal est 75012
Essaie ceci (c'est un exemple de requête) :
UPDATE commande SET prix00 WHERE id IN (SELECT commande_id FROM client WHERE code_postal='75012');
@++
Michaël
Le 01/02/2005 13:11, Etienne SOBOLE a écrit :
comment on fait un update avec une jointure?
par exemple j'ai des clients et des commandes...
j'aimerai mettre a jour un champ dans le table commande pour tous les
clients dont le code postal est 75012
Essaie ceci (c'est un exemple de requête) :
UPDATE commande SET prix00
WHERE id IN (SELECT commande_id FROM client WHERE code_postal='75012');
comment on fait un update avec une jointure? par exemple j'ai des clients et des commandes... j'aimerai mettre a jour un champ dans le table commande pour tous les clients dont le code postal est 75012
Essaie ceci (c'est un exemple de requête) :
UPDATE commande SET prix00 WHERE id IN (SELECT commande_id FROM client WHERE code_postal='75012');
@++
Michaël
Michael
Le 01/02/2005 21:42, Michael a écrit :
Essaie ceci (c'est un exemple de requête) :
UPDATE commande SET prix00 WHERE id IN (SELECT commande_id FROM client WHERE code_postal='75012');
Au temps pour moi! J'ai lu le mail trop rapidement. Mince...
Michaël
Le 01/02/2005 21:42, Michael a écrit :
Essaie ceci (c'est un exemple de requête) :
UPDATE commande SET prix00
WHERE id IN (SELECT commande_id FROM client WHERE code_postal='75012');
Au temps pour moi! J'ai lu le mail trop rapidement. Mince...
UPDATE commande SET prix00 WHERE id IN (SELECT commande_id FROM client WHERE code_postal='75012');
Au temps pour moi! J'ai lu le mail trop rapidement. Mince...
Michaël
Fred BROUARD - SQLpro
dans un tel cas il ne faut pas mettre d'alias à la table cible :
update commande set blabal = 1 where idclient = (select idclient from client c where c.codepost = 75012 and c.idclient = idclient)
La corrélation se fait entre c.idclient = idclient. Les colonnes de corrélation avec la table cible doivent apparaître sans aucun préfixe d'alias.
A +
-- Frédéric BROUARD, MVP SQL Server. Expert SQL / spécialiste Delphi, web Livre SQL - col. Référence : http://sqlpro.developpez.com/bookSQL.html Le site du SQL, pour débutants et pros : http://sqlpro.developpez.com ************************ www.datasapiens.com *************************
Etienne SOBOLE a écrit:
salut.
comment on fait un update avec une jointure? par exemple j'ai des clients et des commandes... j'aimerai mettre a jour un champ dans le table commande pour tous les clients dont le code postal est 75012
update commande set blabal = 1 where idclient in (select idclient from client where codepost = 75012); fonctionne (enfin je suppose j'ai pas testé...)
je me demande juste comment on fait avec un jointure??? c'est a dire sans le IN !
merci Etienne
dans un tel cas il ne faut pas mettre d'alias à la table cible :
update commande
set blabal = 1
where idclient = (select idclient
from client c
where c.codepost = 75012
and c.idclient = idclient)
La corrélation se fait entre c.idclient = idclient.
Les colonnes de corrélation avec la table cible doivent apparaître sans aucun
préfixe d'alias.
A +
--
Frédéric BROUARD, MVP SQL Server. Expert SQL / spécialiste Delphi, web
Livre SQL - col. Référence : http://sqlpro.developpez.com/bookSQL.html
Le site du SQL, pour débutants et pros : http://sqlpro.developpez.com
************************ www.datasapiens.com *************************
Etienne SOBOLE a écrit:
salut.
comment on fait un update avec une jointure?
par exemple j'ai des clients et des commandes...
j'aimerai mettre a jour un champ dans le table commande pour tous les
clients dont le code postal est 75012
update commande set blabal = 1 where idclient in (select idclient from
client where codepost = 75012);
fonctionne (enfin je suppose j'ai pas testé...)
je me demande juste comment on fait avec un jointure??? c'est a dire sans le
IN !
dans un tel cas il ne faut pas mettre d'alias à la table cible :
update commande set blabal = 1 where idclient = (select idclient from client c where c.codepost = 75012 and c.idclient = idclient)
La corrélation se fait entre c.idclient = idclient. Les colonnes de corrélation avec la table cible doivent apparaître sans aucun préfixe d'alias.
A +
-- Frédéric BROUARD, MVP SQL Server. Expert SQL / spécialiste Delphi, web Livre SQL - col. Référence : http://sqlpro.developpez.com/bookSQL.html Le site du SQL, pour débutants et pros : http://sqlpro.developpez.com ************************ www.datasapiens.com *************************
Etienne SOBOLE a écrit:
salut.
comment on fait un update avec une jointure? par exemple j'ai des clients et des commandes... j'aimerai mettre a jour un champ dans le table commande pour tous les clients dont le code postal est 75012
update commande set blabal = 1 where idclient in (select idclient from client where codepost = 75012); fonctionne (enfin je suppose j'ai pas testé...)
je me demande juste comment on fait avec un jointure??? c'est a dire sans le IN !
merci Etienne
Jacques Caron
Salut,
On Tue, 1 Feb 2005 13:11:17 +0100, Etienne SOBOLE wrote:
comment on fait un update avec une jointure?
man update :-)
par exemple j'ai des clients et des commandes... j'aimerai mettre a jour un champ dans le table commande pour tous les clients dont le code postal est 75012
update commande set blabal = 1 where idclient in (select idclient from client where codepost = 75012); fonctionne (enfin je suppose j'ai pas testé...)
je me demande juste comment on fait avec un jointure??? c'est a dire sans le IN !
update commande set blabla=1 from client c where c.codepostu012 and c.idclient=commande.idclient;
Le seul "truc" c'est que la table qu'on update fait implicitement partie du from mais qu'il n'est pas possible de la nommer, donc on l'adresse par son vrai nom (ou implicitement s'il n'y a pas d'ambiguïté sur les noms des colonnes).
Jacques. -- Interactive Media Factory Création, développement et hébergement de services interactifs: SMS, SMS+, Audiotel... http://www.imfeurope.com/
Salut,
On Tue, 1 Feb 2005 13:11:17 +0100, Etienne SOBOLE <etienne-nospam@tlk.fr>
wrote:
comment on fait un update avec une jointure?
man update :-)
par exemple j'ai des clients et des commandes...
j'aimerai mettre a jour un champ dans le table commande pour tous les
clients dont le code postal est 75012
update commande set blabal = 1 where idclient in (select idclient from
client where codepost = 75012);
fonctionne (enfin je suppose j'ai pas testé...)
je me demande juste comment on fait avec un jointure??? c'est a dire
sans le IN !
update commande set blabla=1 from client c where c.codepostu012 and
c.idclient=commande.idclient;
Le seul "truc" c'est que la table qu'on update fait implicitement partie
du from mais qu'il n'est pas possible de la nommer, donc on l'adresse par
son vrai nom (ou implicitement s'il n'y a pas d'ambiguïté sur les noms des
colonnes).
Jacques.
--
Interactive Media Factory
Création, développement et hébergement
de services interactifs: SMS, SMS+, Audiotel...
http://www.imfeurope.com/
On Tue, 1 Feb 2005 13:11:17 +0100, Etienne SOBOLE wrote:
comment on fait un update avec une jointure?
man update :-)
par exemple j'ai des clients et des commandes... j'aimerai mettre a jour un champ dans le table commande pour tous les clients dont le code postal est 75012
update commande set blabal = 1 where idclient in (select idclient from client where codepost = 75012); fonctionne (enfin je suppose j'ai pas testé...)
je me demande juste comment on fait avec un jointure??? c'est a dire sans le IN !
update commande set blabla=1 from client c where c.codepostu012 and c.idclient=commande.idclient;
Le seul "truc" c'est que la table qu'on update fait implicitement partie du from mais qu'il n'est pas possible de la nommer, donc on l'adresse par son vrai nom (ou implicitement s'il n'y a pas d'ambiguïté sur les noms des colonnes).
Jacques. -- Interactive Media Factory Création, développement et hébergement de services interactifs: SMS, SMS+, Audiotel... http://www.imfeurope.com/