所以我有2张桌子:
StockIn:
id quantity date status_id
1 10 2017-05-01 1
2 20 2017-05-04 1
3 30 2017-05-06 1
StockTrf:
id quantity date status_id
1 11 2017-05-02 1
2 21 2017-05-03 1
3 31 2017-05-05 1
我想将这两个表合并为一个按日期排序的表格,如:
id quantity date status_id
1 10 2017-05-01 1
1 11 2017-05-02 1
2 21 2017-05-03 1
2 20 2017-05-04 1
3 31 2017-05-05 1
3 30 2017-05-06 1
我不知道如何结合它...有人可以帮助我吗?谢谢! 我正在使用laravel 5.2 btw,所以如果你知道一种更好的方法将它与laravel语法结合起来,我会很感激..
编辑:我需要将此表加入statuses
表,以便我可以获取状态名称Active
或in-Active
。那么如何在laravel中加入union
和join
?
状态:
id name
1 Active
2 In-Active
答案 0 :(得分:1)
快速审核documentation会揭示如何做一个简单的UNION
:
$first = DB::table('StockIn');
$second = DB::table('StockTrf')
->unionAll($first)
->join('statuses', 'StockTrf.status_id', '=', 'statuses.id')
->orderBy('date', 'asc')
->get();
这对应于以下原始UNION
查询:
SELECT *
FROM
(
SELECT * FROM StockIn
UNION ALL
SELECT * FROM StockTrf
) t1
INNER JOIN statuses t2
ON t1.status_id = t2.id
ORDER BY t1.date ASC
答案 1 :(得分:0)
使用UNION ALL声明:
SELECT *
FROM
(
SELECT id , quantity , date , status
FROM StockIn
UNION ALL
SELECT id , quantity , date , status
FROM StockTrf
) A
ORDER BY quantity