Php MySQL-使用左连接返回随机记录

Php MySQL-使用左连接返回随机记录,php,mysql,Php,Mysql,我想知道有没有人能帮我 我想在我的网站上显示随机的“民意调查”,我的数据库中大约有50个,我想在每个人重新加载页面时显示一个不同的民意调查 要获取投票,我使用以下SQL查询。。。。但这是表中的第一个。。。我怎样才能让它得到一个随机的“民意调查” SELECT * FROM polls LEFT JOIN pollanswers ON polls.pollID = pollanswers.pollID WHERE polls.pollID = 1 ORDER By pollAn

我想知道有没有人能帮我

我想在我的网站上显示随机的“民意调查”,我的数据库中大约有50个,我想在每个人重新加载页面时显示一个不同的民意调查

要获取投票,我使用以下SQL查询。。。。但这是表中的第一个。。。我怎样才能让它得到一个随机的“民意调查”

SELECT * 
  FROM polls 
  LEFT JOIN pollanswers ON polls.pollID = pollanswers.pollID 
 WHERE polls.pollID = 1 
 ORDER By pollAnswerListing ASC
非常感谢使用ORDER BY RAND LIMIT 1,并可能删除WHERE子句,假设polls.pollID是您的主键

SELECT * 
FROM polls 
 LEFT JOIN pollanswers ON polls.pollID = pollanswers.pollID 
/*WHERE polls.pollID = 1*/
 ORDER BY RAND() LIMIT 1

您必须将pollID更改为某个随机数

polls.pollID = 1 
到,例如

polls.pollID = 9

假设您有50次投票,则生成一个介于1和50之间的随机数 并将其作为PollId值而不是硬编码的值1传递给mysql查询

var randomId= rand(5, 50);

在查询中使用此随机ID

@BigJobbies哇,上面缺少关键字ORDER BY。本应按兰特限额订购1@BigJobbies:什么不起作用?在“order by”修复之后,这个建议似乎是正确的,那么你得到了什么?啊,我知道发生了什么,它需要民意测验。pollID=[number]由于pollanswers通过pollID字段链接到民意测验表,我不同意“它需要民意测验。pollID=[number]”;left join返回基于两个表的left join的结果,然后才按rand limit 1对其排序。上面的语句应该有效。你不能假设,从polls中选择COUNT*作为max:webarto:这是真的。但在他提到的问题中,它几乎是50。我假设处理这个查询或网站的人能够从数据库中读取计数。答案只是关于mysql连接值。如果你在任何时候都有50次投票,这可能是一个不错的解决方案,不多也不少。但是,如果有稍微少一点或多一点呢?然后,您需要首先查询数据库以找到有多少个,然后在第二个查询中提供随机轮询。我认为兰德公司的订单是一种更好的方法。