我有表A,其中15,000行各有一个唯一ID,表B有10,000,000行,表A中每个唯一ID有多行。我需要检查表B中表A中的每个ID,并从中选择1个随机行每个匹配的ID。因此,一旦查询运行,我将最终得到表B中的15,000个随机行(每个行都有一个唯一的表A ID)。
我认为这对于单独的RAND()或循环来说太强烈了,所以它必须是一个参与的选择。
看了这个,但它只涉及一张桌子 http://explainextended.com/2009/03/01/selecting-random-rows/
无法调整它以满足我的需要。
答案 0 :(得分:0)
这样的事情怎么样?
select distinct b.a_id from b inner join a on a.id = b.id order by rand(10000000)