Avatar billede hoppe11 Nybegynder
06. november 2007 - 17:12 Der er 3 kommentarer og
1 løsning

left join - er attrib sat

Jeg har et forum. Forummet har en tilknyttet table med attributterne som f.eks. att_remove

forum:
--------
id | ... | subject | msg

att_forum:
--------
contr_id | att_remove | ...

Jeg laver en query, hvor jeg henter en oversigt over seneste tråde i mit forum, men jeg kan ikke få den til at vise det aktuelle antal svar. Hvis der er slettede (att_remove=1) indlæg i tråden bliver de stadig talt med?

SELECT forum.id, forum.subject, att_forum.att_remove, MAX(forum2.time) AS max_time, COUNT(forum2.thread_id)-1 AS num
FROM ($DB.forum forum
LEFT JOIN $DB._att_forum att_forum ON att_forum.contr_id=forum.id)
INNER JOIN $DB.forum forum2 ON forum2.thread_id=forum.id
WHERE forum.forum_id='$key' && forum.id=forum.thread_id && COALESCE(att_forum.att_remove, 0)=0
GROUP BY forum.thread_id
ORDER BY att_stick DESC, max_time DESC
LIMIT 5
Avatar billede hoppe11 Nybegynder
07. november 2007 - 19:42 #1
Jeg har to eksempler på queries, hvor rækker hvor att_remove som er sat ikke kommer med i udtrækket

SELECT forum.id
FROM $DB.forum forum
LEFT JOIN $DB._att_forum att_forum ON att_forum.contr_id=forum.id
WHERE forum.thread_id='".$_GET['id']."' && COALESCE(att_forum.att_remove, 0)=0
ORDER BY forum.id

SELECT forum.id, MAX(forum2.time) AS max_time
FROM ($DB.forum forum
    LEFT JOIN $DB._att_forum att_forum ON att_forum.contr_id=forum.id)
INNER JOIN $DB.forum forum2 ON forum2.thread_id=forum.id
WHERE forum.forum_id='".$_GET['tab']."' && forum.id=forum.thread_id && COALESCE(att_forum.att_remove, 0)=0
GROUP BY forum.thread_id
ORDER BY max_time DESC

Jeg kan ikke helt forstå hvorfor "COALESCE(att_forum.att_remove, 0)=0" i det sidste eksempel nærmest bliver overset, men hvor der til gengæld bliver taget højde for det i det øverste. Opbyngingen er for så vidt den samme
Avatar billede hoppe11 Nybegynder
07. november 2007 - 19:44 #2
edit:
Jeg har to eksempler på queries, hvor det kun er den ene som tager højde for rækker hvor att_remove er sat og dermed ikke kommer med i udtrækket
Avatar billede hoppe11 Nybegynder
07. november 2007 - 20:03 #3
Jeg tror problemet er gået op for mig. Man skal jo alle tilhørende indlæg igennem for at se om de er blevet slettet, og jeg undersøger kun om indlæget som starter tråden er :)

Er der en som hjælpe med at lave en udvidelse af den nederste query, så man få det reele optælling af indlæg i tråden? :)
Avatar billede hoppe11 Nybegynder
14. november 2007 - 22:18 #4
lukker
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