Avatar billede pelskee Nybegynder
31. januar 2006 - 14:12 Der er 5 kommentarer og
1 løsning

Delete Where Exists

jeg skal slette records fra en tabel hvor email adressen optræder i en anden tabel. tror i dette vil virke (er der en bedre/hurtigere måde at gøre det på)?

DELETE FROM Total_Master
WHERE EXISTS
(SELECT Unsubscribe.Email FROM Unsubscribe
WHERE Total_Master.Email = Unsubscribe.Email);
Avatar billede kabbak Professor
31. januar 2006 - 14:43 #1
DELETE Total_Master.*, Total_Master.Email
FROM Total_Master
WHERE (((Total_Master.Email) Like (DLookUp("[Email]","Unsubscribe",[Email]=[Email]))));

et forslag
Avatar billede geagleeye Nybegynder
06. februar 2006 - 10:47 #2
strsql = "Delete * FROM " & _
        " Total_Master" & _
        " WHERE Exist " & _
        " (SELECT Unsubscribe.Email FROM Unsubscribe " & _
        " WHERE Total_Master.Email = Unsubscribe.Email);
               
        Set qms = dbs.CreateQueryDef("", strsql)
        qms.Execute
        Set qms = Nothing
        strsql = ""
Avatar billede pelskee Nybegynder
06. februar 2006 - 10:53 #3
er der forskel på hvor hurtigt de 2 forslag vil køre ?
der ligger cirka 250.000 records i tabellen Master og cirka 1000 i unsubscribe
Avatar billede geagleeye Nybegynder
06. februar 2006 - 10:54 #4
er det hastighed der betyder noget for dig ?
Avatar billede geagleeye Nybegynder
06. februar 2006 - 10:59 #5
hmmm........
der er ikke rigtige andre udveje end at at prøve dem begge.

men en anden ting er at du kunne smide det hele ind i array og slette alt indhold i tabel.
Og derefter kunne du tjekke og slette i Array og  når du så er færdigt kunne du smide alt tilbage igen til den tomme tabel.
men dette skal du nok hvis du skal kørere førspørgelsen meget ofte.
dette vil nok tage 20 sek måske ?
Avatar billede jesperthomsen Nybegynder
14. februar 2006 - 10:01 #6
DLookUp er meget, meget langsom. Den holder jeg mig som regel fra.
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Dyk ned i databasernes verden på et af vores praksisnære Access-kurser

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester