FAQ |
Kalender |
![]() |
#1 | ||
|
|||
Nykomling
|
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: |
||
![]() |
![]() |
![]() |
#2 | ||
|
|||
Nykomling
|
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 where threads.thread_id = posts.thread_id and forum_id = '2' group by threads.thread_id order by threads.timestamp desc; |
||
![]() |
![]() |
![]() |
#3 | |||
|
||||
Mycket flitig postare
|
MAX(timestamp) som urvalskriterie för grupperingen?
|
|||
![]() |
![]() |
![]() |
#4 | ||
|
|||
Supermoderator
|
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 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 [B]desc[/B]; ![]()
__________________
Jonny Zetterström se.linkedin.com/in/jonnyz | bjz.se | sajthotellet.com | kalsongkungen.se | zretail.se | zetterstromnetworks.se | webbhotellsguide.se | ekonominyheter24.se | nyamobiltelefoner.se | gapskratt.se | antivirusguiden.se | jonny.nu |
||
![]() |
![]() |
![]() |
#5 | |||
|
||||
Bara ett inlägg till!
|
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 ![]() |
|||
![]() |
![]() |
Svara |
|
|