delete from - SQL/NoSQL - Programmation
Marsh Posté le 10-12-2007 à 13:41:16
Essayer
DELETE * |
Marsh Posté le 10-12-2007 à 15:02:45
le truc de olivthill devrait marcher si le & est une concatenation en access et que les quotes sont les bonnes.
sinon ceci devrait passer en oracle, ptetre que en access aussi même si j'ai un doute
Code :
|
Marsh Posté le 10-12-2007 à 15:38:18
(Pas essayer celle olivthill vu que pas sql) mais la requête de Casimimir ne fonctionne pas et access me renvoi le message suivant:
Vous avez écrit une sous-requête pouvant renvoyer plus d’un champ sans utiliser le mot réservé EXISTS dans la clause FROM de la requête principale. Révisez l'instruction SELECT de la sous-requête pour obtenir un seul champ.
Marsh Posté le 10-12-2007 à 16:06:46
Regarde du côté de
DELETE *
FROM X
USING Y
Marsh Posté le 10-12-2007 à 16:19:02
Autant pour moi : pas de USING sous Access.
Par contre, ça, ça doit fonctionner (même principe que le USING en fait) :
DELETE Table1.*
FROM Table1 t1, Table2 t2
WHERE t1.foo = t2.bar
Marsh Posté le 10-12-2007 à 16:54:45
ReplyMarsh Posté le 11-12-2007 à 08:44:00
casimimir a écrit : je vois pas trop en quoi la requete de olivthill n'est pas du sql mais bon... |
laisse tomber
Marsh Posté le 11-12-2007 à 09:59:49
ou bien tu parlais des premieres requetes de gerald25? car il n'a pas essayé celle d'olivthill a cause de ce commentaire.
Marsh Posté le 11-12-2007 à 11:40:56
J'ai essayer quand même celle d'olivthill (au cas ou) mais access ne comprend pas la requete et me renvoie un message d'erreur de syntaxe sql
Marsh Posté le 11-12-2007 à 12:01:19
c'est ce que j'avais mentionné, c'est la ou il faudrait que qqu'un utilisant access puisse aider, dans sa requete il a utilié & pour concaténer les chaines de caractères, est ce que & sert a cela sous access, et est ce que les doubles quotes " servent bien a quoter une chaine litérale en access, par exemple en oracle ce sont les simples.
son delete est incorrect mais bon l'idée était la
sous oracle j'aurai écris:
Code :
|
Marsh Posté le 11-12-2007 à 13:39:44
En access, si mes souvenirs sont bon, pour concaténer les chaines, c'est '+'.
Ceci dit, ma solutin fonctionne et est quand même plus "propre" !
Marsh Posté le 11-12-2007 à 17:52:09
Code :
|
Ca devrait marcher.
Marsh Posté le 12-12-2007 à 09:50:04
Un grand merci à tous
La requete de magic buzz marche (juste rajouter le from après delete)
Tu ma enlevé une sacré épine du pied
Marsh Posté le 10-12-2007 à 13:22:40
Bonjour
j'ai 2 table sur access: 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 de manière unique un enregistrement est Nom1 + Nom2)
J'ai testé avec les 2 requête suivantes le problème est qu'il me supprime tous les enregistrements (donc plus que prévu) où il trouve une correspondance entre:
TABLE_1.NOM1 ET TABLE_2.NOM1
OU
TABLE_1.NOM2 ET TABLE_2.NOM2
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));
Merci pour votre aide