webForumDet fria alternativet

Problem med att joina två phpBB-tabeller

Databaser & SQLur Databashanterare & SQL

2 svar · 459 visningar · startad av geeky

Medlem sedan mars 200815 inlägg
Frågan#1

Hej,

Jag har ett phpbb (2.0) forum. Jag vill göra en funktion som tar de fem senast uppdaterade forumstrådarna i en viss forumsdel och visar trådarnas rubriker (topics) på min sidas startsida.

För att kunna göra detta behöver jag joina två tabeller (tror jag). Dels tabellen phpbb_posts och dels tabellen phpbb_topics. Fälten i de två tabellerna ser (förenklat) ut så här:

Tabell: phpbb_posts:

forum_id
post_id
topic_id
post_time

Tabell: phpbb_topics

forum_id
topic_title
topic_id

Jag skrev följande query, men resultatet blir att EN topic väljs och visas fem gånger istället för att fem av senaste topic:sen visas.

Den aktuella forumsdelen har id 144.

SELECT phpbb_topics.topic_title, phpbb_topics.topic_id FROM phpbb_topics LEFT JOIN phpbb_posts ON phpbb_posts.topic_id=phpbb_topics.topic_id WHERE phpbb_topics.forum_id = 144 ORDER BY phpbb_posts.post_time LIMIT 0,5

Kan inte komma på hur queryn ska skrivas så att de fem senast uppdaterade trådarna i en viss forum del väljs ut. Nån som vet?

EDIT: Såg precis att jag råkade posta detta i php forumet. Ska naturligtvis vara i sql-forumet. Sorry. Mod får flytta.

Medlem sedan juni 200032 967 inlägg
#2

geeky skrev:

EDIT: Såg precis att jag råkade posta detta i php forumet. Ska naturligtvis vara i sql-forumet. Sorry. Mod får flytta.

Din vilja är min lag.

Mvh

Medlem sedan dec. 200012 464 inlägg
#3
select phpbb_topics.topic_title, 
       phpbb_topics.topic_id, 
       max(phpbb_posts.post_time) lastPost
  from phpbb_topics 
  join phpbb_posts 
    on phpbb_posts.topic_id = phpbb_topics.topic_id 
 where phpbb_topics.forum_id = 144 
 group by  phpbb_topics.topic_id
 order by lastPost desc
 limit 0,5
134 ms totalt · 3 externa anrop · v20260731065814-full.4bcf49fe
0 ms — hämta forumlista (cache)
0 ms — hämta statistik (cache)
130 ms — hämta tråd, inlägg och bilagor (db)