SQL查询laravel语法

时间:2018-04-04 03:33:00

标签: php sql laravel laravel-query-builder

我如何查询:

SELECT *, due1 as newDate FROM equipments WHERE due1 <> "1990-01-01" 
UNION ALL 
SELECT *, due2 as newDate FROM equipments where due2 <> "1990-01-01"
UNION ALL 
SELECT *, due3 as newDate FROM equipments WHERE due3 <> "1990-01-01" 
ORDER BY newDate ASC 
<\ n>在Laravel?

2 个答案:

答案 0 :(得分:0)

如果您查看unions下的Laravel文档,您可以创建多个select语句,最后一个语句使用union()函数和/或unionAll()函数

答案 1 :(得分:0)

如上所述,解决方案是unionAll()语句:

$TMUDue = Equipments::Where('due1', '<>', '1990-01-01')
                                ->select('*', 'due1 AS newDate');
$CalDue = Equipments::Where('due2', '<>', '1990-01-01')
                                ->select('*', 'due2 AS newDate');
$SerDue = Equipments::Where('due3', '<>', '1990-01-01')
                                ->select('*', 'due3 AS newDate');
$equipmentsDue = $SerDue->unionAll($CalDue)->unionAll($TMUDue)->orderBy('newDate' , 'ASC')->get();

有趣的是union()结果只有due1 due2 <> 1990-01-01unionAll(),而Test-AzureRmResourceGroupDeployment结果为此示例中相同设备的两个条目

正是我在寻找的东西。谢谢你的回复!