Voila dans cette discussion
http://www.developpez.net/forums/d66...ation-requete/

on m'a propose de faire une requete en utilisant using.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
DELETE FROM activite USING
(
SELECT foo_activite.id_activite FROM
(SELECT * FROM activite) AS foo_activite
LEFT JOIN
(SELECT idactiv FROM liaison_activ_mag) AS foo_liaison
ON (foo_activite.id_activite = foo_liaison.idactiv)
WHERE foo_liaison.idactiv IS NULL
) AS to_drop
WHERE activite.id_activite=to_drop.id_activite;
Je connais pas cette fonction et a vrai dire je trouve pas de doc l'expliquant
Aussi j'ai voulu l'essayer avec un update j'ai donc cree ces deux tables:

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
CREATE TABLE tablea
(
  ida serial NOT NULL,
  idb integer,
  colaremplir integer,
  CONSTRAINT tablea_pkey PRIMARY KEY (ida)
)
 
CREATE TABLE tableb
(
  idb serial NOT NULL,
  autredonnee integer,
  CONSTRAINT tableb_pkey PRIMARY KEY (idb)
)
et j'ai essaye de faire cette requete
UPDATE tablea
USING (
SELECT B.autredonnee
FROM tablea A
JOIN tableb B ON B.idb = A.idb
)
AS manewdonnee
SET colaremplir = manexdonnee
mais ca marche pas.

Peut on utiliser using dans un update.
Comment reussir a passe mes donnees autredonnee dans colaremplir


Merci