Requete sql

Signaler
Messages postés
448
Date d'inscription
mardi 20 septembre 2005
Statut
Membre
Dernière intervention
26 juillet 2012
-
Messages postés
448
Date d'inscription
mardi 20 septembre 2005
Statut
Membre
Dernière intervention
26 juillet 2012
-
bonjour,
je cherche a supprimer les lignes d'une table (T1) qui ne sont pas referencées par la table (T2) (et meme une autre tablme nsuite)
ma table T1 a pour clé un couple (col1,col2)
et T2 possede egalement (col1,col2)

je voudrai sdonc faire quelque chose de la sorte :
delete from T1 where (col1,col2) not in (select (col1,col2) from T2)  and not in (select (col1,col2) from T3)";

mais la syntaxe nb'est pas correcte,

COmment faire?

Merci

4 réponses

Messages postés
143
Date d'inscription
vendredi 28 janvier 2005
Statut
Membre
Dernière intervention
25 octobre 2006

remplace in par exist
Messages postés
448
Date d'inscription
mardi 20 septembre 2005
Statut
Membre
Dernière intervention
26 juillet 2012
2
j'obitnes le meme message d'erreur : "incorrect syntaxe near ,"
Messages postés
1115
Date d'inscription
mercredi 15 juin 2011
Statut
Membre
Dernière intervention
6 mai 2021
4
J'ai pas SQL Server d'installé sinon j'aurai fait un petit test.

Tu oublies de dire ce qu'est T3.
De plus ton pb n'est pas C# mais plutot SQL, je pense que sur http://www.sqlfr.com/ tu auras plus de change d'avoir une réponse (s'il y a du monde :))

au lieu de faire select (col1,col2) from T2, fait plutot select (T2.col1,T2.col2) from T2

Mais je vois pas ton erreur de syntaxe
Messages postés
448
Date d'inscription
mardi 20 septembre 2005
Statut
Membre
Dernière intervention
26 juillet 2012
2
merci pour ton aide,
g regardé sur internet les requetes avec existS


et c donc


"delete from T1 where not exists (select  *  from T2 where T1.col1=T2.col2 and T1.col2=T2.col2) "