首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >基本数据仓库-如何连接数据2表

基本数据仓库-如何连接数据2表
EN

Stack Overflow用户
提问于 2017-12-09 13:18:43
回答 1查看 1.5K关注 0票数 2

我有一个代表警察部队的基本数据仓库设置:

每个FACT_CRIME都有一个指定的DIM_OFFICER;每个DIM_OFFICER都被分配给一个DIM_STATION

我可以使用什么SQL逻辑来显示所有的FACT_CRIME和相关的DIM_STATION?我的问题是要获得DIM_STATION.station_code,我知道必须通过DIM_OFFICER完成,因为这是关系链接,但是我对DIM_OFFICER不够了解,不知道如何从两个表中获取数据。

到目前为止,这是一个查询,它产生了我想要的格式,但没有正确的结果:

代码语言:javascript
复制
select
    fact_crime.*, dim_station.station_code
from fact_crime
join dim_station
    on fact_crime.assigned_officer_id
        in (select dim_officer.officer_id from dim_officer where dim_officer.station_id = dim_station.station_id)
group by dim_station.station_code

产生的结果样本:(格式正确,但数据不正确)

我期待FACT_CRIME的每一个实例都会出现,指定官员的站代码也会出现在表中。

提前感谢任何能为我指明正确方向的人。我仍然试图掌握SQL的基础知识,所以如果我需要对任何响应进行更多的澄清,那么请原谅。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-12-09 13:54:49

你需要两个连接,就像这样(我猜是因为你没有给出太多的细节)。

代码语言:javascript
复制
...
from fact_crime c
join dim_officer o ON c.assigned_officer_id = o.officer_id
join dim_station s ON o.station_id = s.station_id

这是一种非常常见的SQL模式,因此您会发现MySQL软件做得很好,使其高效。

Pro提示:避免使用SELECT *中的*,特别是来自结果集,这是许多JOIN操作的结果。相反,使用SELECT提供所需的列列表。

票数 5
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/47728994

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档