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

如何用MySQL的SELECT语句扩展现有数据表?

可以通过简单SELECT语句实现该需求

要生成目标Table2,核心是让Table1的每一行分别与两组固定值((A,B)、(C,D))进行组合,以下是两种通用的实现方式:

方法1:使用交叉连接(CROSS JOIN)搭配VALUES子句

这是标准SQL的写法,通过构造包含两组固定值的临时数据集,与Table1做笛卡尔积,直接得到8行结果:

SELECT 
    t1.Col1,
    t1.Col2,
    t1.Col3,
    vals.Col4,
    vals.Col5
FROM Table1 t1
CROSS JOIN (
    VALUES ('A', 'B'), ('C', 'D')
) AS vals(Col4, Col5);

原理:CROSS JOIN会将Table1的4行数据与子查询中的2行数据逐一配对,最终得到4×2=8行,同时将固定值填充到新增的Col4和Col5列。

方法2:使用UNION ALL合并两次查询

如果你的数据库不支持VALUES子句(部分旧版本数据库),可以通过两次查询分别绑定不同的固定值,再用UNION ALL合并结果:

SELECT 
    t1.Col1,
    t1.Col2,
    t1.Col3,
    'A' AS Col4,
    'B' AS Col5
FROM Table1 t1
UNION ALL
SELECT 
    t1.Col1,
    t1.Col2,
    t1.Col3,
    'C' AS Col4,
    'D' AS Col5
FROM Table1 t1;

原理:第一次查询给Table1所有行绑定(A,B),第二次绑定(C,D),两次结果合并后正好是8行目标数据。

两种方法都属于简单的SELECT语句范畴,不需要创建临时表或复杂逻辑即可完成需求。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.27 23:47:25