Avatar billede ulrik-nielsen Nybegynder
12. juni 2003 - 20:12 Der er 18 kommentarer

Hjælp til tvivl om korrekt query-udførelse

Burde man ikke kunne gøre følgende:

DELETE FROM koraldyk_forumread WHERE koraldyk_forumread.topic=koraldyk_forum.level AND koraldyk_forum.id= MAX(koraldyk_forum.id) koraldyk_forum.date < '1054836494'

Jeg får ikke nogen fejl, men der bliver ikke slettet noget!
Avatar billede ulrik-nielsen Nybegynder
12. juni 2003 - 20:15 #1
Ups den ser således ud:

DELETE FROM koraldyk_forumread WHERE koraldyk_forumread.topic=koraldyk_forum.level AND koraldyk_forum.id= MAX(koraldyk_forum.id) AND koraldyk_forum.date < '1054836868'
Avatar billede disky Nybegynder
12. juni 2003 - 20:20 #2
svært at sige uden at kende det data du har i din tabel.

Må man spørge om du er ved at lave et dykkersite ?

Jeg er selv dykker ;)
Avatar billede ulrik-nielsen Nybegynder
12. juni 2003 - 20:21 #3
Hehe =) Jeps det er jeg.. www.koraldyk.dk. Er ved at skrive hele siden om.
Avatar billede ulrik-nielsen Nybegynder
12. juni 2003 - 20:22 #4
kan du ses om det kan lade sig gøre hvis jeg poster data'en fra mine tabeller?
Avatar billede jinxit Nybegynder
12. juni 2003 - 20:23 #5
Hvis jeg ikke tager meget fejl er det kun fra MySQL 4.0.0 at man kan inddrage mere end 1 tabel i et delete query og syntaksen er lidt anderledes.
Avatar billede jinxit Nybegynder
12. juni 2003 - 20:24 #6
Jeg regner med at koraldyk_forumread og koraldyk_forum er 2 forskellige tabeller
Avatar billede disky Nybegynder
12. juni 2003 - 20:26 #7
Et lille tip brug PostNuke okay jeg ved vi udviklere gerne vil lave tingene selv, men PostNuke er så gennemtænkt at jeg har valgt at bruge det istedet.
Der findes moduller til Forum, Gallery osv.
Avatar billede ulrik-nielsen Nybegynder
12. juni 2003 - 20:27 #8
koraldyk_forum:
id |  date  |  level  |
22 |  5555  |  22    |
26 | 456656 |  22    |

koraldyk_forumread:
id |  topic
6 |  22 
11 |  22
Avatar billede jinxit Nybegynder
12. juni 2003 - 20:29 #9
Hvilken MySQL version?
Avatar billede ulrik-nielsen Nybegynder
12. juni 2003 - 20:29 #10
jo det er to forskellige tabeller!

det er de viste rækker i koraldyk_forumread jeg gerne vil have slettet. Kan det gøres på andre måder?

Hvor kan man finde PostNuke?
Avatar billede ulrik-nielsen Nybegynder
12. juni 2003 - 20:30 #11
ver: 4.0.12
Avatar billede jinxit Nybegynder
12. juni 2003 - 20:30 #12
Så skal du først hive informationerne fra koraldyk_forum via. et select og derefter bruge informationerne til at slette den korrekte række fra koraldyk_forumread
Avatar billede jinxit Nybegynder
12. juni 2003 - 20:34 #13
DELETE koraldyk_forumread
FROM koraldyk_forumread, koraldyk_forum
WHERE koraldyk_forumread.topic=koraldyk_forum.level AND
      koraldyk_forum.id = MAX(koraldyk_forum.id) AND
      koraldyk_forum.date < '1054836868'

Det skulle vist klare det
Avatar billede ulrik-nielsen Nybegynder
12. juni 2003 - 20:38 #14
nej :-/
Avatar billede jinxit Nybegynder
12. juni 2003 - 20:39 #15
Nogle fejl?
Avatar billede jinxit Nybegynder
12. juni 2003 - 20:45 #16
Hvad så med...

DELETE FROM koraldyk_forumread
USING koraldyk_forumread, koraldyk_forum
WHERE koraldyk_forumread.topic = koraldyk_forum.level AND
      koraldyk_forum.id = MAX(koraldyk_forum.id) AND
      koraldyk_forum.date < '1054836868'
Avatar billede ulrik-nielsen Nybegynder
12. juni 2003 - 22:32 #17
nej :-(

Jeg får heller ingen fejl..
Avatar billede ulrik-nielsen Nybegynder
12. juni 2003 - 22:47 #18
Har fundet fejlen! Den ligger ved:
koraldyk_forum.id = MAX(koraldyk_forum.id)

MAX behøver ikke at være det højeste id(dvs. den højeste date) hvor koraldyk_forumread.topic = koraldyk_forum.level, som det var tiltænkt!
Det virker hvis jeg indsætter det rigtigt id:
koraldyk_forum.id = 26
Hvis du kan følge mig? :D

Kan man lave det anderledes?
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