我正在构建一个论坛网站,我希望以下列格式向用户显示所有主题:
_________________________________________________________________________
Thread Title
Last Post: Username at Date, Started By: Username at Date
_________________________________________________________________________
这就是我提出的:
SELECT TD.id thread_id,
TD.sub_cat thread_cat,
TD.title thread_title,
TD.date thread_date,
TD.status thread_status,
TD.stick thread_stick,
US.username user,
GR.color group_color
FROM fr_thread AS TD
INNER JOIN user AS US ON TD.user_id = US.id
INNER JOIN user_group AS GR ON US.user_group = GR.id
ORDER BY TD.stick
虽然我显示了所有主题,但我还希望用户名根据他们所在的用户群进行着色。因此,我还需要查询。
虽然我已经提出了大部分查询,我仍然坚持如何查询用户名,群组颜色,最后一张海报的日期。
这大致是我的数据库设计的样子:
user:
id
user_group
user_group:
id
color
fr_thread:
id
sub_cat
user_id
date
fr_reply:
id
thread_id
user_id
date
答案 0 :(得分:0)
尝试
SELECT
TD.id as thread_id ,
TD.sub_cat as thread_sub_cat ,
TD.user_id as thread_started_user_id ,
TD.date as thread_started_on ,
US1.name as thread_author ,
US2.id as last_reply_user_id ,
US2.name as last_reply_user_name ,
USG1.color as thread_author_color ,
USG2.color as lat_reply_user_color ,
RE.date as last_reply_date
FROM
fr_thread TD join user US1 on TD.user_id = US1.id
join user_group USG1 on USG1.id = US1.user_group
join fr_reply RE on RE.thread_id = TD.id
join user US2 on US2.id = RE.user_id
join user_group USG2 on USG2.id = US2.user_group
为user
和[{1}}创建了US1
表的2个别名,并且US2
user_group
相似的(创建者和最后一个回复者)