我在爲應用程序構建一個論壇,並且我試圖在討論中獲取最新的海報。我正在使用的數據庫是Oracle。在oracle的複雜查詢中獲取最後的論壇海報
我有以下表格:
discussions
id
course_id
user_id
title
stub
created_at
threads
id
discussion_id
user_id
created_at
updated_at
message
discussion_views
discussion_id
user_id
time
users
id
username
而且我有以下查詢:
select discussions.created_at,
discussions.title,
users.username,
count(threads.id) AS "replies",
count(distinct discussion_views.discussion_id) AS "views"
from discussions
left join threads on discussions.id=threads.discussion_id
left join discussion_views on discussions.id=discussion_views.discussion_id
join users on users.id=discussions.user_id
group by discussions.created_at, discussions.title, users.username
order by discussions.created_at desc
我需要的是讓誰張貼在一個線程和日期的最後一個用戶。我應該製作一個內插件,一個連接還是應該製作另一個插件。我也希望我的查詢是高性能的,因爲我的論壇需要處理大量的流量。
您已要求誰張貼在一個線程中的最後一個用戶的日期,但你的線程表上沒有它的日期。此外,你的「視圖」計數將始終返回1(在有任何視圖的地方),因爲對於給定的討論,只會有一個獨特的discussion_id - 'discussion_views'是否有其獨特的'id'列? – 2012-03-09 12:06:21