SQL 查询 laravel 语法
SQL query laravel syntax
如何查询:
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
在 Laravel?
如果您查看 unions 下的 Laravel 文档,您可以创建多个 select 语句,最后一个语句使用 union()
函数 and/or unionAll()
函数
如上所述,解决方案是 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-01
而 unionAll()
结果是同一设备的两个条目这个例子。
正是我要找的。感谢回复!
如何查询:
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
在 Laravel?
如果您查看 unions 下的 Laravel 文档,您可以创建多个 select 语句,最后一个语句使用 union()
函数 and/or unionAll()
函数
如上所述,解决方案是 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-01
而 unionAll()
结果是同一设备的两个条目这个例子。
正是我要找的。感谢回复!