使用随机结果顺序有条件地连接两个表的最有效方法是什么

时间:2011-05-20 19:13:55

标签: mysql

问题与堆栈交换投票系统非常相似。我想查询一个对象表中的随机对象,并获取指定用户对该对象的任何投票。

objects table:
 id
 user_id
 message

votes table:
 object_id
 user_id
 vote_value

select * from objects order by RAND()生成随机对象,但如何在同一查询中为该对象选择特定用户的投票值?用户可能永远不会对结果对象进行投票,因此我不能简单地在id / object_id上进行连接。

1 个答案:

答案 0 :(得分:2)

如果用户(在这种情况下为NULL)未对某个对象投票,此查询将打印user_idvote_value的{​​{1}}:

1