Avatar billede moreless Nybegynder
24. marts 2003 - 19:22 Der er 12 kommentarer og
2 løsninger

delete fra 2 tabeller

Hej

jeg skal have slettet nogle brugere fra min database, forespørgelsen virker fint når jeg skriver SELECT men med DELETE virker det ikke, jeg har en anelse om at det måske er lidt tricky at vælge 2 tabeller at slette fra?

DELETE FROM bruger, bog
WHERE bruger.sidstelogin = '0000-00-00 00:00:00'
AND bruger.id = bog.id
Avatar billede moreless Nybegynder
24. marts 2003 - 20:52 #1
ingen svar idag?
Avatar billede arne_v Ekspert
24. marts 2003 - 21:06 #2
DELETE FROM bog WHERE id IN (SELECT id FROM BRUGER WHERE sidstelogin = '0000-00-00 00:00:00');

DELETE FROM bruger WHERE sidstelogin = '0000-00-00 00:00:00');

er generisk SQL for det du vil.

Så er spørgsmålet kun om din MySQL accepterer IN.
Avatar billede arne_v Ekspert
24. marts 2003 - 21:15 #3
Ifølge www.mysql.com skulle IN være fra og med version 4.1 !
Avatar billede moreless Nybegynder
24. marts 2003 - 21:16 #4
jeg kører MySQL 3.23.55
Avatar billede moreless Nybegynder
24. marts 2003 - 21:26 #5
det kan ikke passe at jeg ikke kan lave den query..
Avatar billede moreless Nybegynder
24. marts 2003 - 21:26 #6
den funker ikke.. "fejl i linie 1"
Avatar billede arne_v Ekspert
24. marts 2003 - 21:31 #7
Desværre:

http://www.mysql.com/doc/en/DELETE.html

The first multi-table delete format is supported starting from MySQL 4.0.0. The second multi-table delete format is supported starting from MySQL 4.0.2.
Avatar billede moreless Nybegynder
24. marts 2003 - 21:36 #8
ok.. en anden løsning så.. måske noget php løsning?
Avatar billede arne_v Ekspert
24. marts 2003 - 21:47 #9
Der er altid mulighed for en programmatisk løsning:

result set = query DELETE FROM bruger WHERE sidstelogin = '0000-00-00 00:00:00'
while more records {
    x = result set bruger.id
    execute DELETE FROM bog WHERE id = x
}
execute DELETE FROM bruger WHERE sidstelogin = '0000-00-00 00:00:00'

[pseudo kode]
Avatar billede moreless Nybegynder
25. marts 2003 - 10:35 #10
eh php?
Avatar billede arne_v Ekspert
25. marts 2003 - 16:03 #11
Ovenstående er pseudo-kode.

Jeg er sikker på at det kan laves i PHP.

Men jeg ved ikke hvordan.
Avatar billede moreless Nybegynder
26. marts 2003 - 14:42 #12
nåh det havde jeg ikke set, er der nogle der kan lave et php script som gør det samme som hans pseudo kode?
Avatar billede moreless Nybegynder
26. marts 2003 - 15:15 #13
jeg lukker og henviser til http://www.eksperten.dk/spm/333663
Avatar billede moreless Nybegynder
26. marts 2003 - 15:15 #14
tak for den hjælp du kunne
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

IT-JOB

Forsvarsministeriets Materiel- og Indkøbsstyrelse

IT-Sikkerhedsrådgiver til Cyberdivisionen i Hvidovre

Nextway Software A/S

Product Configuration Specialist

Lægemiddelstyrelsen

Løsningsarkitekt

Erhvervsakademi Aarhus

Undervisere til it-uddannelser