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

数据仓库Galaxy Schema查询验证:提取指定表数据的SQL是否正确?

星系模型SQL提取代码修正

我有如下星系模型(Galaxy Schema):
galaxy schema

需要提取dim1、dim2、fact1和dim4中的数据。已知dim1含d1字段、dim2含d2字段、fact1含f1字段,各表主键分别为dim1id、dim2id等。我编写了一段SQL代码,但无法确认其正确性,代码如下:

select d1,d2,f1, d4 
from fact1
join dim1 on fact1.dim1id=dim1.dim1id
join dim 2 on fact1. dim2id=dim2.dim2id
join fact2 on fact2.dim2id=dim2.dim2id
join dim4 on fact2.dim4id=dim4.dim4id

代码问题与修正

  1. 语法错误:

    • 表名dim 2存在空格,需改为dim2
    • 字段fact1. dim2id前多了空格,需修正为fact1.dim2id
  2. 逻辑注意点:

    • 当前用的是内连接(JOIN),只会返回所有表中匹配的记录。如果需要保留fact1中所有数据,哪怕没有对应dim2或dim4的关联记录,建议改用左连接(LEFT JOIN),避免丢失数据。

修正后的代码

内连接版本(仅取全匹配记录):

select d1, d2, f1, d4 
from fact1
join dim1 on fact1.dim1id = dim1.dim1id
join dim2 on fact1.dim2id = dim2.dim2id
join fact2 on fact2.dim2id = dim2.dim2id
join dim4 on fact2.dim4id = dim4.dim4id

左连接版本(保留fact1所有记录):

select d1, d2, f1, d4 
from fact1
left join dim1 on fact1.dim1id = dim1.dim1id
left join dim2 on fact1.dim2id = dim2.dim2id
left join fact2 on fact2.dim2id = dim2.dim2id
left join dim4 on fact2.dim4id = dim4.dim4id

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.22 12:27:12