问题 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/