Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Pbm avec requete de suppression

4 réponses
Avatar
TopBidouille
Bonjour,
encore une autre question
j'essaie de supprimer dans la table A les enregistrements correspondant de
la table B
voici ma requete
DELETE from A inner join B on (A.Nvendeur= B.Nvendeur) AND (A.Nag = B.Nag);
l'analyser de requete me dit : Syntaxe incorrecte vers le mot cle Inner..
à noter que la meme requete avec un select a la place du delete fonctionne.

-sur ma table A la clé unique est un numéro auto NUMA
-sur ma table B je n'ai pas de clé unique (je sais c'est pas bien, mais
comme c'est une table tempo...)

Voila
Merci
Christophe

4 réponses

Avatar
Fred BROUARD
On ne peut supprimer que dans une seule table à la fois, donc toute
jointure avec une autre table est interdite.
Il faut utiliser une sous requête corrélée ou la jointure à la SQL Server :

DELETE from A
WHERE A.clef IN (SELECT A.id
FROM A
inner join B
on A.Nvendeur= B.Nvendeur
AND A.Nag = B.Nag)

(norme SQL)

Ou encore :

DELETE from A
FROM A AA
inner join B
on AA.Nvendeur= B.Nvendeur
AND AA.Nag = B.Nag

Spécifique SQL Server

A +


--
Frédéric BROUARD, MVP Microsoft SQL Server. Langage SQL / 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
****************** mailto: ******************

TopBidouille a écrit:
Bonjour,
encore une autre question
j'essaie de supprimer dans la table A les enregistrements correspondant de
la table B
voici ma requete


> DELETE from A inner join B on (A.Nvendeur= B.Nvendeur) AND (A.Nag =
B.Nag);
l'analyser de requete me dit : Syntaxe incorrecte vers le mot cle Inner..
à noter que la meme requete avec un select a la place du delete fonctionne.

-sur ma table A la clé unique est un numéro auto NUMA
-sur ma table B je n'ai pas de clé unique (je sais c'est pas bien, mais
comme c'est une table tempo...)

Voila
Merci
Christophe





Avatar
Céline
DELETE from A
where A.Nag IN(SELECT B.Nag
FROM B
WHERE B.Nvendeur=A.Nvendeur)

@ plus
Céline

-----Message d'origine-----
Bonjour,
encore une autre question
j'essaie de supprimer dans la table A les enregistrements


correspondant de
la table B
voici ma requete
DELETE from A inner join B on (A.Nvendeur= B.Nvendeur)


AND (A.Nag = B.Nag);
l'analyser de requete me dit : Syntaxe incorrecte vers le


mot cle Inner..
à noter que la meme requete avec un select a la place du


delete fonctionne.

-sur ma table A la clé unique est un numéro auto NUMA
-sur ma table B je n'ai pas de clé unique (je sais c'est


pas bien, mais
comme c'est une table tempo...)

Voila
Merci
Christophe



.



Avatar
TopBidouille
Merci
je vai tester ca de suite, je ne m'en sortais pas avec le Where A.clef In ..
a+
Christophe
Avatar
TopBidouille
Ok c'est nikel merci a tous le deux
Christophe
"TopBidouille" a écrit dans le
message de news:c24dot$jbn$
Merci
je vai tester ca de suite, je ne m'en sortais pas avec le Where A.clef In


..
a+
Christophe