查询合并两个表数据

时间:2014-09-22 13:47:25

标签: mysql sql join

我有两张桌子:

stock in

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

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

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

stock out

Id--date--Itemname---stockOutqty

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

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

我需要两个日期之间的testitem记录的合并结果,按

的顺序排列
date----itemname----stockInqty----stockOutqty

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

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

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

2 个答案:

答案 0 :(得分:3)

如果不是MySQL,您可以使用FULL JOIN,因此您应该LEFT/RIGHT JOIN使用UNION

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

答案 1 :(得分:0)

试试这个:

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

您必须使用FULL OUTER JOIN操作

在MySql FULL OUTER JOIN中可以使用LEFT OUTER JOIN中的两个UNION进行模拟