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

标签 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  

感谢您的帮助。

最佳答案

看起来您需要两个聚合子查询的完整外部联接。但在您的情况下,我会在联合子查询(派生表)中获得 item_iddate 以及相关子查询(子选择)中的总和。

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

关于mysql根据日期选择2个表并相互合并,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45265538/

相关文章:

mysql - 连接 MySQL 中的两个表,从第二个表返回一行

mysql - 明智地在mysql记录中连接字符串

mysql - 如何在qt中首先调用另一个表单

php - 在 php 和 mysql 中对数据进行排序多少?

mysql - 更新 3 列连接表时出错

sql - 使用左关节时如何检查列是否没有任何值?

php - MYSQL 查询不起作用,一个 php 文件中有 2 个数据库

mysql - ORDER BY 随机子级别的 SQL 语法?

java - 在 openshift 上连接到 jdbc mysql

mysql - ActiveRecord MySQL 和联接