0

我正在创建一个网站,用户可以在其中创建相册、创建活动、上传视频等。我想要做的是列出给定用户最近的活动。这是我的表格的一个小轮廓:

**videos**
id
user_id
uploaded

**albums**
id
user_id
created
updated

**comments**
id
user_id
date

当然表中的字段更多,表也更多,但这些应该足以帮助我构建查询。

现在我想要输出的是一个日期,以及带有这些字段的给定活动的 id:

user_id, video_id, album_id, comment_id, date

当然,应该只选择一个 ID 字段,其余的应该为空,日期应该来自视频的“上传”,专辑的“更新”和评论的“日期”。应在 where 语句的查询中选择 user_id,以便获取给定用户的活动。

我试图构建这个查询但失败了,质疑应该使用 COALESCE 来选择不同的时间戳,但我无法绕过它。

4

1 回答 1

1

像这样的东西?

(选择user_id,id作为video_id,NULL作为album_id,NULL作为comment_id,从视频上传日期)
联盟
(选择user_id,NULL,id,NULL,从相册上传)
联盟
(从评论中选择 user_id、NULL、NULL、id、日期)

您可以ORDER BY在整个事情之后应用一个子句,但WHERE条件要放在每个单独的SELECT.

于 2011-03-05T14:49:06.683 回答