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

如何在Redshift SQL中实现两张表的笛卡尔积查询

如何用Redshift SQL生成两表的全量关联结果集?

你需要将存储月份的表1和存储客户ID的表2做全量关联,让每个月份与所有客户ID一一配对,生成笛卡尔积形式的结果集。

表结构示例

表1(月份表)

month
january-2022
february-2022
march-2022

表2(客户ID表)

client_id
100123
100124
100125

期望输出

month           client_id
january-2022    100123
february-2022   100123
march-2022      100123
january-2022    100124
february-2022   100124
march-2022      100124
january-2022    100125
february-2022   100125
march-2022      100125

解决方案

使用Redshift支持的CROSS JOIN(交叉连接)语法,它会返回两张表的笛卡尔积,即表1的每一行与表2的每一行进行组合,正好满足你的需求:

SELECT 
    t1.month, 
    t2.client_id
FROM 
    表1 t1
CROSS JOIN 
    表2 t2;

也可以使用隐式交叉连接的写法(效果相同,但显式CROSS JOIN可读性更强,推荐使用):

SELECT 
    t1.month, 
    t2.client_id
FROM 
    表1 t1, 
    表2 t2;

说明

  • CROSS JOIN不需要关联条件,直接将两张表的所有行进行组合
  • 如果表数据量较大,笛卡尔积会生成大量数据,执行前请确认业务需求和数据规模

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.13 09:40:25