Avatar billede Slettet bruger
28. august 2008 - 10:46 Der er 2 kommentarer og
1 løsning

Hvad er det galt med denne delete sætning?

Hvad er det galt med denne delete sætning?!?

DELETE FROM basket_session bs LEFT JOIN orders o ON o.session_id = bs.id WHERE o.id IS NULL AND bs.date < DATE(NOW())-7

Som select sætning fungere den fint:

SELECT * FROM basket_session bs LEFT JOIN orders o ON o.session_id = bs.id WHERE o.id IS NULL AND bs.date < DATE(NOW())-7
Avatar billede pidgeot Nybegynder
28. august 2008 - 10:54 #1
Når du henviser til flere tabeller i en DELETE, skal du angive hvorfra der skal slettes. Det er jo ikke helt ligegyldigt om den kun sletter fra basket_session, eller om orders også tages med.

Du har to muligheder: enten skal du mellem DELETE og FROM skrive tabellerne du vil slette fra, eller også skal du skrive tabellerne umiddelbart efter FROM, og så sætte USING ind efter dem. Altså enten:

DELETE tabel1 FROM tabel1 LEFT JOIN tabel2 (...)
eller:
DELETE FROM tabel1 USING tabel1 LEFT JOIN tabel2 (...)

Hvis der skal slettes fra flere tabeller, adskiller du dem med komma.

Se evt. http://dev.mysql.com/doc/refman/4.1/en/delete.html.
Avatar billede Slettet bruger
28. august 2008 - 11:03 #2
Ah! Selvfølgelig, tusind tak. Hvis du lige opretter et svar, så skal du få dine point...
Avatar billede pidgeot Nybegynder
28. august 2008 - 11:13 #3
Værsgo :)
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