繁体   English   中英

使用一个关系ID连接多个MySQL表

[英]Joining multiple MySQL Tables with one relations ID

我在所有这些表之间有4个MySQL表,它们在Identity列上是相同的,Sequences中的表为1- Items。 2-销售。 3-Puchases。 4-返回。

当我使用LEFT JOIN时,ItemID会出现在所有这些表中,例如:

    select 
    a.ItemID AS ItemID,
    a.Item_title AS ItemTitle,
    SUM(b.qty) AS SoldQty,
    SUM(c.qty) AS PurQty,
    SUM(d.qty) AS RetQty
from items a 
left join sales b on a.ItemID = b.items_ItemID
left join purchases c on a.ItemID = c.items_itemID
left join returned d on a.ItemID = d.items_ItemID
group by a.ItemID 

该查询是我尝试过的众多尝试之一:D我得到的结果对于销售而言始终是唯一的,而对于其他表则是重复的..

感谢您的回答。

如果我了解您要正确执行的操作,则需要从a获得的每个项目ID的销售,购买,退货等总数。 如果是这种情况,请尝试先考虑一个更简单的问题:如何获得每个销售数量的总和(按物料ID分组)?

为此,您需要执行以下操作:

select b.items_ItemID, sum(b.qty) as total_sales_qty 
from sales b group by b.items_ItemID

您可以对表c和d做同样的事情。

获得这些内容后,您可以像这样将它们一起加入:

select a.ItemID, bb.total_sales_qty, cc.total_purchases_qty, dd.total_returned_qty 
from items a 
left join (
    select b.items_ItemID, sum(b.qty) as total_sales_qty 
    from sales b group by b.items_ItemID) bb 
on a.ItemID = bb.items_ItemID 
left join (
    select c... etc) cc
on a.ItemID = cc.items_ItemID
... etc

我并没有真正使用MySQL,但是在SQL Server中,您可以使用distinct指令,因此重复的行仅显示为一行。 请注意,所有返回的列必须相同。

Select Distinct a.ItemID AS ItemID,... From....

希望这可以帮助

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM