我有两个数据源,一个跟踪产品,另一个跟踪财务信息。这两者没有共同的领域,但它们都与我们的计费系统有共同的领域。我想使用我们的计费系统数据作为我的两个来源之间的桥接表,以便我可以在一次分析中将产品数据连接到财务数据,而无需在我们的viz工具中进行混乱和缓慢的混合(例如 - 使用案例逻辑make product.client = finance.account ...不一致的命名约定是最糟糕的)。我基本上使用结算作为查询表,首先将产品加入计费,然后加入财务到我的新加入......我想。
我想创建三个mysql表,其中的字段沿着字母项。 1.产品 一个。客户 湾PROD_ID C。尺寸 d。公 2.财务 一个。帐户 湾fine_id C。量 d。国家 3.结算 一个。帐户 湾PROD_ID C。 fine_id
我使用结算作为查询表首先将产品加入到结算中,以便我可以获取所有产品字段以及帐户和fine_id。然后我想加入第一次加入的金融。我可以使它在excel中工作,但是我们正在使用的数据规模(如果)此工具上线对于excel来说太大了,因此需要MySQL。我是否正确,我可以在MySQL的连接上实现这种类型的连接?我真的很感激有关加入我的财务表到下面的联接的任何语法指导。谢谢!
编辑后发布 - 加入语法,我的加入的正确顺序是什么?我得到的错误只是我的语法有错误。我使用下面的。我已经重新排序了几次,但我仍然缺少一些如何做到这一点的概念性内容。我想1.将产品加入到结算中(即使没有匹配也返回行)2。将财务加入产品/结算外部联接,以便我可以在同一个表中查看我的产品和财务数据。感谢所有的帮助!
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
答案 0 :(得分:1)
您的任务/问题:“我想创建三个mysql表 与沿着领域的领域 字母项目。
我使用结算作为查询表首先将产品加入到结算中,以便我可以获取所有产品字段以及帐户和fine_id。然后我......“
通过加入可以轻松实现:
SELECT * From product, billing, finance
WHERE billing.account = finance.account
AND billing.fine_id = finance.fine_id
AND billing.prod_id = product.prod_id
关于您的评论,如果相应的结算数据不存在且您希望结果中包含所有产品,则可以像这样使用左外部联接:
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 *”。您可以像这样一起加入表格。