mysql根据日期选择2表并相互组合

时间:2017-07-23 13:20:21

标签: mysql join

我需要一些帮助..我有一些如下情况

我有2个表...电话(" in_table"和" out_table")

数据" in_table"看起来像

stock_id    item_id      date      qty_in  
-----------------------------------------
1             11          2017-07-11   12
2             11          2017-07-11   10
3             12          2017-07-11   10
4             12          2017-07-19   10

我有" out_table"就像

id_tr   item_id     date        qty_out  
-------------------------------------
1           11       2017-07-19   2
1           12       2017-07-19   1
2           11       2017-07-19   2
2           12       2017-07-19   1 

我想结合日期并显示所有这些数据,

更新:通过item_id加入,但我想按日期选择

date           item_id   qty_in   qty_out 
---------------------------------------
2013-07-11     11         22       0
2013-07-11     12         10       0
2013-07-19     11         0        4
2013-07-19     12         10       2  

感谢您的帮助。

1 个答案:

答案 0 :(得分:0)

看起来你需要两个聚合子查询的完全外连接。但在你的情况下,我会在union子查询(派生表)中获得item_iddate以及相关子查询中的总和(subselect)。

select item_id, date,
    (select sum(qty_in)  from in_table  i where i.item_id = sub.item_id and i.date = sub.date) as qty_in,
    (select sum(qty_out) from out_table o where o.item_id = sub.item_id and o.date = sub.date) as qty_out
from (
    select item_id, date from in_table
    union
    select item_id, date from out_table
) sub
order by date, item_id