首页 > 解决方案 > 从 SQLite 中的两个表中随机选择

问题描述

当您想从表中随机选择时,您将使用以下代码:

Select * FROM table ORDER BY RANDOM() LIMIT X;

但我想从两个或多个这样的表中随机选择:

Select * FROM table1, table2, ... ORDER BY RANDOM() LIMIT X;

但是上面的代码不起作用是否可以这样做?:

标签: sqlite

解决方案


您正在对两个表进行交叉连接,然后从中选择 X 个随机行。如果您想要来自任一表的行,则需要UNION ALL

SELECT *
FROM (SELECT * FROM table1
      UNION ALL
      SELECT * FROM table2)
ORDER BY random()
LIMIT ?

推荐阅读