从ID中随时间分组选择多个表

时间:2011-04-18 18:28:06

标签: mysql sql join inner-join

我正在尝试从多个表中选择数据,但我不确定内连接是否正确。我有两个表,一个有comments.useridcomments.comment,另一个有votes.userid,两个都有一个time列。

select comments.comment, voted.time, comments.time
from voted
inner join comments on voted.userid = comments.userid
where voted.userid = '12345'
order by voted.time

但是现在我的行​​在voted.timecomments.time中都有值,即使它们应该是分开的。有没有办法只返回评论或投票,但由用户ID加入并按总时间排序?

2 个答案:

答案 0 :(得分:1)

你可以尝试这样的事情。如果将其放入视图中,则可以在调用视图时发出ORDER BY。也可以在视图调用中执行userid过滤。

select 'V' as type, v.userid, v.time from votes v where v.userid = '1234'
union
select 'C' as type, c.userid, c.time from comments c where c.userid = '1234'

答案 1 :(得分:0)

根据你的说法,你是过滤器和连接逻辑看起来正确。只需在select语句中添加/删除您希望/不希望在检索到的数据集中返回的列。