You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

MySQL:两个无关联表如何查询得到包含各自随机值的单行结果

解决方案

方法1:子查询作为返回字段(单字段场景首选)

直接将两个返回单行单值的子查询放在SELECT字段列表中即可,无需关联条件:

SELECT
  (SELECT column_a FROM table_x ORDER BY rand() LIMIT 1) AS column_a,
  (SELECT column_b FROM table_y ORDER BY rand() LIMIT 1) AS column_b;

方法2:交叉连接拼接结果集(多字段场景首选)

如果需要从每张表中获取多个随机字段,可使用CROSS JOIN拼接两个仅返回1行的子查询,1行*1行的笛卡尔积最终结果就是1行:

SELECT a.column_a, b.column_b
FROM
  (SELECT column_a FROM table_x ORDER BY rand() LIMIT 1) AS a
CROSS JOIN
  (SELECT column_b FROM table_y ORDER BY rand() LIMIT 1) AS b;

原方案问题说明

UNION是用于纵向合并多个结果集(会新增行数),你需要的是横向拼接字段(新增列数),因此UNION不匹配你的需求。

内容的提问来源于stack exchange,提问作者aaxiom

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.03 02:45:01