如何从两个表中随机化sql结果集?

时间:2015-09-26 12:04:10

标签: mysql sql random

我有两张桌子

Table1 person:
-person_id
-name

Table2 expertise:
-expertise_id
-person_id
-expertise_name

我想要达到的目标是让5个随机人员返回该人的相应2个随机专业知识。到目前为止,我可以归还所有人及其所有专业知识。

SELECT * FROM person p, expertise e WHERE e.person_id = p.person_id

任何人都可以帮我这个吗?提前谢谢。

1 个答案:

答案 0 :(得分:1)

最简单的方法可能是将专业知识退回一行:

select p.*,
       substring_index(group_concat(e.expertise_name order by rand()), ',', 2) as two_expertises
from (select p.*
      from person p
      order by rand()
      limit 5
     ) p left join
     expertise e
     on p.person_id = e.person_id
group by p.person_id;