Requete Delete from
Grald
-
xkristi Messages postés 4336 Date d'inscription Statut Membre Dernière intervention -
xkristi Messages postés 4336 Date d'inscription Statut Membre Dernière intervention -
Bonjour,
j'ai 2 table: table_1 (300000 enregistrements) et table_2 (3000 enregistrements). La table_2 étant les suppressions à faire dans la table_1.
TABLE_1
NOM1 NOM2 A B C
TABLE_2
NOM1 NOM2
J'essaye donc de créer une requête sql de suppression des enregistrements de la table 2 vers table 1 (ce qui permet d'identifier un enregistrement est Nom1 et Nom2)
J'ai essayé la fonction delete from mais je ne dois pas lui donner la bonne syntaxe car il me renvoi un message afin de lui donner une valeur à table_2
mon but n'est pas de donner une valeur de suppression mais que le delete se fasse automatiquement à partir de donner de la table_2
je ne sais pas si je suis très clair
D'avance merci
j'ai 2 table: table_1 (300000 enregistrements) et table_2 (3000 enregistrements). La table_2 étant les suppressions à faire dans la table_1.
TABLE_1
NOM1 NOM2 A B C
TABLE_2
NOM1 NOM2
J'essaye donc de créer une requête sql de suppression des enregistrements de la table 2 vers table 1 (ce qui permet d'identifier un enregistrement est Nom1 et Nom2)
J'ai essayé la fonction delete from mais je ne dois pas lui donner la bonne syntaxe car il me renvoi un message afin de lui donner une valeur à table_2
mon but n'est pas de donner une valeur de suppression mais que le delete se fasse automatiquement à partir de donner de la table_2
je ne sais pas si je suis très clair
D'avance merci
A voir également:
- Requete Delete from
- Hiberfil.sys delete - Guide
- Just delete me - Guide
- Win setup from usb - Télécharger - Utilitaires
- Apply update from adb traduction - Forum Téléphones & tablettes Android
- Requête sql pix - Forum Python
7 réponses
Salut !
as-tu déjà testé le plus simple donc ce qui suit :
DELETE *
FROM TABLE_1
WHERE
TABLE1_NOM1=TABLE2_NOM1
and TABLE1_NOM2=TABLE2_NOM2
as-tu déjà testé le plus simple donc ce qui suit :
DELETE *
FROM TABLE_1
WHERE
TABLE1_NOM1=TABLE2_NOM1
and TABLE1_NOM2=TABLE2_NOM2
salut !
Bien sûr , tu as déjà fait une copie de sauvegarde
sur une base Excel ou autre ?
sql :
avec une sous-select du style :
delete ... where Table_1.nom1 in (select nom1 from Table_2)
tu effaces de table_1 lorsqu'il y a le même nom1 dans table_2
Bien sûr , tu as déjà fait une copie de sauvegarde
sur une base Excel ou autre ?
sql :
avec une sous-select du style :
delete ... where Table_1.nom1 in (select nom1 from Table_2)
tu effaces de table_1 lorsqu'il y a le même nom1 dans table_2
Merci pour ton aide
J'avais bien fiat une copie avant de me lancer dans de la suppression
Je n'ai plus de message d'erreur (c'est déjà super)....
Par contre il me supprime plus d'enregistrement. Ce qui identifie de maniere unique un enregistrement est = NOM1 + NOM2
Là Access me supprime tous les enregistrements où il trouve une correspondance entre:
TABLE_1.NOM1 ET TABLE_2.NOM1
OU
TABLE_1.NOM2 ET TABLE_2.NOM2
Voici les deux requêtes lancés; j'obtiens les même résultats (la 1er étant issu de l'aide de Xkristi)
DELETE *
FROM TABLE_1
WHERE NOM1 IN (SELECT NOM1 FROM TABLE_2) AND NOM2 IN (SELECT NOM2 FROM TABLE_2);
DELETE *
FROM TABLE_1
WHERE TABLE_1.NOM1 IN (SELECT TABLE_1.NOM1 FROM TABLE_1 INNER JOIN TABLE_2 ON (TABLE_2.NOM1 = TABLE_1.NOM1))
AND TABLE_1.NOM2 IN (SELECT TABLE_1.NOM2 FROM TABLE_1 INNER JOIN TABLE_2 ON (TABLE_2.NOM2 = TABLE_1.NOM2));
J'avais bien fiat une copie avant de me lancer dans de la suppression
Je n'ai plus de message d'erreur (c'est déjà super)....
Par contre il me supprime plus d'enregistrement. Ce qui identifie de maniere unique un enregistrement est = NOM1 + NOM2
Là Access me supprime tous les enregistrements où il trouve une correspondance entre:
TABLE_1.NOM1 ET TABLE_2.NOM1
OU
TABLE_1.NOM2 ET TABLE_2.NOM2
Voici les deux requêtes lancés; j'obtiens les même résultats (la 1er étant issu de l'aide de Xkristi)
DELETE *
FROM TABLE_1
WHERE NOM1 IN (SELECT NOM1 FROM TABLE_2) AND NOM2 IN (SELECT NOM2 FROM TABLE_2);
DELETE *
FROM TABLE_1
WHERE TABLE_1.NOM1 IN (SELECT TABLE_1.NOM1 FROM TABLE_1 INNER JOIN TABLE_2 ON (TABLE_2.NOM1 = TABLE_1.NOM1))
AND TABLE_1.NOM2 IN (SELECT TABLE_1.NOM2 FROM TABLE_1 INNER JOIN TABLE_2 ON (TABLE_2.NOM2 = TABLE_1.NOM2));
Désolé de n'avoir pu tester plus tôt
Mais cela ne marche pas non plus (même résultat = plus de suppression que prévu)
Mais cela ne marche pas non plus (même résultat = plus de suppression que prévu)
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question