我正在尝试从多个表中选择数据,但我不确定内连接是否正确。我有两个表,一个有comments.userid
和comments.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.time
和comments.time
中都有值,即使它们应该是分开的。有没有办法只返回评论或投票,但由用户ID加入并按总时间排序?
答案 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语句中添加/删除您希望/不希望在检索到的数据集中返回的列。