简体   繁体   English

查询合并两个表数据

[英]Query for merging two table data

I have two tables : 我有两个表:

stock in

Id---date---Itemname----stockInqty

1 --12/12/2014 ----testitem----12

2 --13/12/2014 ----testitem11----20

and stock out stock out

Id--date--Itemname---stockOutqty

1 --12/12/2014 ----testitem----7

2 --14/12/2014 ----testitem11----15

I need a combined result of testitem record between two date period in the order of 我需要两个日期之间的testitem记录的组合结果顺序为

date----itemname----stockInqty----stockOutqty

12/12/2014--testitem---12----7

13/12/2014--testitem---20----Nil

13/12/2014--testitem---NIL----15

You could use FULL JOIN if it was not MySQL, so you should use LEFT/RIGHT JOIN with UNION : 如果不是MySQL,则可以使用FULL JOIN ,因此应将LEFT/RIGHT JOINUNION

SELECT t1.`date`
     , t1.itemname
     , t1.stockInqty AS stockInqty
     , t2.stockInqty AS stockOutqty
FROM tbl1 t1 LEFT JOIN tbl2 t2 ON t1.`date` = t2.`date` 
                              AND t1.itemname = t2.itemname
UNION

SELECT t2.`date`
     , t2.itemname
     , t1.stockInqty AS stockInqty
     , t2.stockInqty AS stockOutqty
FROM tbl1 t1 RIGHT JOIN tbl2 t2 ON t1.`date` = t2.`date` 
                               AND t1.itemname = t2.itemname

Try this: 尝试这个:

SELECT *
FROM StockA
LEFT OUTER JOIN StockB
ON StockA.dataItem = StockB.dataItem
UNION 
SELECT *
FROM StockB
LEFT OUTER JOIN StockA
ON StockA.dataItem = StockB.dataItem

You must use a FULL OUTER JOIN operation 您必须使用FULL OUTER JOIN操作

In MySql FULL OUTER JOIN can emulate with two LEFT OUTER JOIN in UNION 在MySql中, FULL OUTER JOIN可以在UNION模拟两个LEFT OUTER JOIN

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

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