【发布时间】:2014-08-13 19:47:36
【问题描述】:
我有这个查询通过我最初的people 表并选择一个随机行:
SELECT * FROM people ORDER BY RAND() LIMIT 0,1
问题是,我的系统发生了一些变化,我目前需要对多个表(目前是两个)执行此查询...但仍然获得相同的结果:单个随机行。
我自然想尝试以下方法,但我读到它最终会成为笛卡尔积:
SELECT * FROM people, products ORDER BY RAND() LIMIT 0,1
我想我可以通过使用UNION 来解决我的问题,但不知道如何解决。
我还必须明确 people 和 products 具有完全相同的结构(3 个字段):
- 身份证
- 姓名
- 说明
知道我该如何做这个查询吗?一些关于优化它的建议也很棒。
感谢您的帮助。
【问题讨论】:
-
人和产品的字段数相同吗?
-
确实如此,感谢您指出这一点,我会将其添加到说明中。