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

如何用SQL连接table1与table2生成包含全部日期的目标数据集?

解决方案

要实现这个需求,核心是合并两张表的日期数据,并将这些日期与table1中的ID和Name关联起来,以下是两种实用的SQL写法:

方式一:适配当前单一用户场景

如果table1里只有ID=1、Name=Paul这一组唯一的用户信息,可以直接合并日期后补充固定的ID和Name:

SELECT 
    1 AS ID,
    'Paul' AS Name,
    Date
FROM (
    -- 合并table1和table2的所有日期,自动去重
    SELECT Date FROM table1
    UNION
    SELECT Date FROM table2
) AS combined_dates
ORDER BY Date;

方式二:通用多用户场景

如果table1中存在多组不同的ID+Name组合,先提取唯一的用户组合,再与合并后的日期做交叉关联:

SELECT 
    t.ID,
    t.Name,
    cd.Date
FROM (
    -- 获取table1中不重复的ID和Name
    SELECT DISTINCT ID, Name FROM table1
) AS t
CROSS JOIN (
    -- 合并两个表的所有日期
    SELECT Date FROM table1
    UNION
    SELECT Date FROM table2
) AS cd
ORDER BY t.ID, t.Name, cd.Date;

关键说明:

  • UNION会自动去除重复日期,如果业务需要保留重复的日期记录,替换成UNION ALL即可。
  • 加上ORDER BY Date可以让结果按日期排序,和你期望的输出格式完全匹配。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.10 04:15:33