首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用桥表连接连接中的MySQL连接

使用桥表连接连接中的MySQL连接
EN

Stack Overflow用户
提问于 2015-08-17 21:33:02
回答 1查看 1K关注 0票数 1

我有两个数据源,一个跟踪产品,另一个跟踪金融信息。这两者没有一个共同的领域,但他们都有一个共同的领域与我们的计费系统。我希望使用我们的计费系统数据作为两个来源之间的桥梁表,这样我就可以在一次分析中将产品数据与财务数据连接起来,而不必在我们的工具(例如,使用案例逻辑来使product.client = finance.account…)中进行混乱和缓慢的混合。不一致的命名约定是最糟糕的)。我基本上是使用计费作为一个查找表,首先将产品连接到计费,然后将财务连接到我的新join…。我认为。

我想要创建三个mysql表,这些表的字段与字母项目的顺序一致。1.产品a.客户b. prod_id c.尺寸d.米制2.财务帐户b. fine_id c.金额d.国家3.记帐b. prod_id c. fine_id

我使用计费作为一个查找表,首先将产品加入到计费中,这样我就可以得到所有的产品字段,加上account和fine_id。然后,我想加入金融界,第一次加入。我可以让它在excel中工作,但是我们曾经使用过的数据规模(如果这个工具在运行的话)对于excel来说太大了,因此需要MySQL。我能在连接w/ MySQL上实现这种类型的连接,对吗?我非常感谢任何关于将我的财务表加入到下面的联接的语法指导。谢谢!

编辑为后语法的加入,什么是正确的顺序,我的联接?我得到的错误只是我的语法出现了一个错误,我正在使用下面的内容。我已经重新排序了几次,但我仍然缺少一些概念性的部分如何做到这一点。我希望1.将产品连接到计费(返回行,即使没有匹配)。2.将财务连接到产品/计费外部连接,以便在同一个表中看到我的产品和财务数据。谢谢你的帮助!

代码语言:javascript
复制
select *
from
(select *
    from
    (select * from 
    lookup.product) as product_join
    left outer join
    (select *
    from lookup.billing) as billing_join
    on product_join.product_id = billing_join.product_id) as left # left join of billing to product
left outer join
    (select *
    from left) as left_join
    left outer join
    (select * from lookup.finance) as finance_join
    on left.finance_id = financef_join.finance_id) # joining of finance data to the left join of my product/billing
EN

回答 1

Stack Overflow用户

发布于 2015-08-17 21:51:45

您的任务/问题:“我想创建三个mysql表,其中的字段按照字母项目的方式排列。

  1. 产品a客户b. prod_id c.尺寸d.米制
  2. 财务a.帐户b. fine_id c.金额d.国家
  3. 帐户b. prod_id c. fine_id

我使用计费作为一个查找表,首先将产品加入到计费中,这样我就可以得到所有的产品字段,加上account和fine_id。然后我.“

通过连接,这是可能的,也是很容易的:

代码语言:javascript
复制
SELECT * From product, billing, finance
WHERE  billing.account = finance.account
AND billing.fine_id = finance.fine_id
AND billing.prod_id = product.prod_id

关于您的评论,如果不存在对应的计费数据,并且希望在结果中包含所有产品,您可以像这样使用左外部联接:

代码语言:javascript
复制
SELECT * from product
LEFT outer join billing
ON product.prod_id = billing.prod_id 
LEFT outer join finance
ON billing.account = finance.account
AND billing.fine_id = finance.fine_id;

您不必将另一个"select *“放在一个联接周围。你可以像这样把桌子连在一起。

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

https://stackoverflow.com/questions/32060063

复制
相关文章

相似问题

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