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

标签 mysql sql random

我有两张 table

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

谁能帮我解决这个问题?提前谢谢你。

最佳答案

可能最简单的方法是在一行中返回专业知识:

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;

关于mysql - 如何从两个表中随机化sql结果集?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32796969/

相关文章:

sql - 如何在 Postgresql 中创建条件插入函数?

testing - 确定随机数测试的测试统计量和分布

mysql - Openfire - MySQL 存储引擎 : InnoDB or MyISAM?

php - fullCalendar 事件 post 方法到 MySQL

php - 获取返回的 PHP 结果数

sql - Oracle中的标识符太长

random - 如何在Prolog中生成正态分布随机数?

C++随机数游戏从集合中,rand选择一个不从集合中的数字

mysql - 如何存储百分比值?

php - 获取不同的行