连接多维度 table 的记录的最佳方式是什么,这些记录都由一个共同的事实 table 连接

what is the best way to join records of multiple dimension tables that are all connected by a common fact table

所以我有一个连接多个维度 table 的事实 table。 假设维度 tables 我有客户、产品和日期。

客户有id,name

产品有编号,价格

日期有id,年份

事实 table 有 cus_id、pro_id 和 date_id。 所有 id 都是来自上面 tables.

的外键

如果我想显示具有 cus_name、pro_price、date_year 的 table。

有效连接这些 table 的查询是什么。

谢谢。

为了回答我尝试过的评论中的问题,我还没有尝试过任何东西,只是因为我不知道怎么做。我了解如何加入 table 的客户和产品,如果它们通过外键关联,但在这种情况下,客户仅与事实 table 相关,我可以加入客户和事实 table 通过加入 customer.id = fact_table.cus_id,但我不知道如何加入客户和产品。

谢谢

SELECT * 从事实 F

LEFT JOIN 客户 C ON C.id = F.cus_id

LEFT JOIN 产品 P ON P.id = F.pro_id

LEFT JOIN 日期 D ON D.id = F.date_id

既然你加入了 id,他们就不可能是双重的 这将显示 Fact table 中的每一行(使用 ForEach 循环)

注意:这不会显示所有数据,因为并非所有日期都在 Fact 中(但因为我假设 Fact == invoice 所以不需要)