![]() |
Har lite strul med en sql fråga
jag har ett forum där varje tråd får ett id i tagellen threads, sen i tabellen posts ligger alla inläggen. Nu vill jag ha första inlägget i varje tråd men problemet är att jag får sista inlägget i tråden. sql satsen ser ut såhär: select threads.timestamp, posts.subject, posts.post_id, threads.thread_id from threads, posts where threads.thread_id = posts.thread_id and forum_id = '2' group by threads.thread_id order by threads.timestamp desc, posts.post_id; jag får trådarna i rätt ordning men det sista inlägget i tråden hamnar i 'subject' Kan någon se vad jag gjort för fel innan jag :wacko: |
Fick till det själv, men det känns väldigt omständigt
Kod:
select threads.timestamp as last_comment, threads.thread_id, count(posts.thread_id)-1 as svar, (SELECT subject FROM posts WHERE posts.thread_id = threads.thread_id order by posts.post_id Limit 1) as subject, (SELECT userid FROM posts WHERE posts.thread_id = threads.thread_id order by posts.post_id Limit 1) as u_id from threads , posts |
MAX(timestamp) som urvalskriterie för grupperingen?
|
Hmm... jag borde sova så jag kanske tänker fel, men vad får du för resultat med
Kod:
select threads.timestamp, posts.subject, posts.post_id, threads.thread_id |
Du löser det med en inner-sql fråga, samt group-by funktionen min:
select threads.timestamp, posts.subject, posts.post_id, threads.thread_id from threads, posts where threads.thread_id = posts.thread_id and forum_id = '2' and posts.id in (select min(id) from posts group by thread_id) order by threads.timestamp desc; Eftersom jag inte har tillgång till din db, får du se det som pseudo-kod :) |
Alla tider är GMT +2. Klockan är nu 19:35. |
Programvara från: vBulletin® Version 3.8.2
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Svensk översättning av: Anders Pettersson