Avatar billede don_r Nybegynder
23. april 2003 - 14:45 Der er 7 kommentarer og
1 løsning

delete

Jeg har 2 tabeller, USERS og LOG_LAST_VISITS de indeholder begge feltet username. Jeg vil gerne slette alle username's fra  LOG_LAST_VISITS der ikke er i USERS.
Er der en sqlsætning til det ??

Min Mysql version er 4.0 tror jeg ikke så jeg kan ikke bruge IN()
Avatar billede tazly Nybegynder
23. april 2003 - 14:49 #1
Prøv med følgende SQL query:

delete from LOG_LAST_VISITS where username not in (select username from USERS)
Avatar billede tazly Nybegynder
23. april 2003 - 14:49 #2
Så ikke at du ikke kunne bruge IN, sorry.
Avatar billede fsconsult.dk Nybegynder
23. april 2003 - 14:59 #3
Det kan desværre ikke lade sig gøre at benytte subselects (som IN jo er) i den version af MySQL.

Man kan dog lave et lille trick med først at finde de ønskede (vha. LEFT JOIN) poster, og bruge det til at generere nogle delete statements med som man efterfølgende kan køre. Det er ikke en køn løsning, men det virker.
Avatar billede fsconsult.dk Nybegynder
23. april 2003 - 15:05 #4
SELECT CONCAT("DELETE FROM LOG_LAST_VISITS WHERE username='", l.username, "';)
FROM LOG_LAST_VISITS l
LEFT JOIN USERS u ON u.username=l.username
WHERE u.username IS NULL
Avatar billede don_r Nybegynder
23. april 2003 - 15:24 #5
fsconsult.dk> jeg har prøvet at skrive din sql ind, det virker ikke ??? Men den kommer ikke med nogen fejlmeddelse.
Avatar billede fsconsult.dk Nybegynder
23. april 2003 - 15:29 #6
SELECT CONCAT("DELETE FROM LOG_LAST_VISITS WHERE username='", l.username, "';")
FROM LOG_LAST_VISITS l
LEFT JOIN USERS u ON u.username=l.username
WHERE u.username IS NULL

(der manglede et par gåseøjne)

Scriptet er ikke afprøvet, men jeg har så sent som igår brugt samme teknik til at få ryddet op i nogle af mine egne databaser (glæder mig til at få MySQL med fremmednøgler!)
Avatar billede don_r Nybegynder
23. april 2003 - 21:04 #7
fsconsult.dk > mange tak for dit svar, hvis du vil have pointene bliver du nød til at lave et svar så får du mine point.
Avatar billede fsconsult.dk Nybegynder
23. april 2003 - 21:12 #8
Håber du kunne bruge det til noget ..
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
Computerworld tilbyder specialiserede kurser i database-management

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