内部连接中的mysql随机选择

标签 mysql

问题 Mysql Random Row Query on Inner Join和我的差不多,但是从来没有人回答过。

我有一个主表m和从表s。对于每个 m,S 包含 1 到许多行。我想要一个查询,它选择连接到一个随机选择的从属的每个主行。

如果表模式是:

M
---
id

S
---
id
mid

然后,在伪代码中查询将是: select * from m inner join s on m.id = s.mid 其中 s.id 是从存在的值中随机选择的一个

这可以翻译成真正的 SQL 吗?

最佳答案

我认为以下查询完成了所需的工作,但使用的是子查询(不是内部联接):

SELECT *, (SELECT id FROM S WHERE S.mid = M.id ORDER BY RAND() LIMIT 1) AS S_id
FROM M

这是一个link测试它。 希望对您有所帮助。

关于内部连接中的mysql随机选择,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53511405/

相关文章:

mysql - Magento 2重命名表元数据锁

sql - 仅当一个字段匹配多个值时才匹配(错误?)

mysql - 如何删除不存在的外键约束?

mysql - 字符串的匹配返回 SQL 中另一个表的结果

php - 获取表单提交的 ID 并输入 phpmailer 电子邮件

mysql - 如何将行值转换为列?

mysql - 如何导入被外键删除的表?

mysql - 如何将我的 SQL 查询转换为 MongoDB 查询?

mysql - 如何使 MySQL 中的一行与另一行相对应?

mysql - SQL查询比较两个表