如何将 SQL 转换为 Laravel 查询
How to Convert SQL to Laravel Query
我想用下面的别名列构建一些东西,但我不知道如何使它成为 Laravel 查询。以下是我的SQL.
SELECT
d.*,
d.damaged_building,
d.total_victim
FROM
(
SELECT
delete_flg,
damage_id,
create_time,
reg_user_name,
municipality_id,
report_time,
district,
village,
disaster_type,
cause_of_disaster,
(
bd_major_damage1 + bd_minor_damage1 + bd_major_damage2 + bd_minor_damage2 + bd_major_damage3 + bd_minor_damage3
)
as damaged_building,
(
hi_hd_deaths + hi_hd_serious_injuries + hi_hd_minor_injuries + hi_hd_missing_persons + hi_hd_sick_persons
)
as total_victim
FROM
d_damage
WHERE
delete_flg = 0
ORDER BY
create_time DESC
)
d
我想将其转换为 Laravel 查询生成器的 Eloquent 以便在我的控制器中使用。
如果我是您,您只需坚持学习 SQL 查询,因为您可以将它带到任何可以学习大量框架/工具的地方,而不是将时间花在 Laravel 上。无论如何,您仍然可以使用原始表达式在 laravel 中使用 sql 查询:https://laravel.com/docs/5.8/queries#raw-expressions
你可以试试这个
DB::table('d_damage')
->where('delete_flg',0)
->orderBy('create_time', 'desc')
->select('delete_flg', 'damage_id', 'create_time', 'reg_user_name', 'municipality_id', 'report_time', 'district', 'village', 'disaster_type', 'cause_of_disaster',DB::raw('(bd_major_damage1 + bd_minor_damage1 + bd_major_damage2 + bd_minor_damage2 + bd_major_damage3 + bd_minor_damage3) as damaged_building'),DB::raw('(hi_hd_deaths + hi_hd_serious_injuries + hi_hd_minor_injuries + hi_hd_missing_persons + hi_hd_sick_persons) as total_victim'))
->get();
这可能不完全是,但差不多
我想用下面的别名列构建一些东西,但我不知道如何使它成为 Laravel 查询。以下是我的SQL.
SELECT
d.*,
d.damaged_building,
d.total_victim
FROM
(
SELECT
delete_flg,
damage_id,
create_time,
reg_user_name,
municipality_id,
report_time,
district,
village,
disaster_type,
cause_of_disaster,
(
bd_major_damage1 + bd_minor_damage1 + bd_major_damage2 + bd_minor_damage2 + bd_major_damage3 + bd_minor_damage3
)
as damaged_building,
(
hi_hd_deaths + hi_hd_serious_injuries + hi_hd_minor_injuries + hi_hd_missing_persons + hi_hd_sick_persons
)
as total_victim
FROM
d_damage
WHERE
delete_flg = 0
ORDER BY
create_time DESC
)
d
我想将其转换为 Laravel 查询生成器的 Eloquent 以便在我的控制器中使用。
如果我是您,您只需坚持学习 SQL 查询,因为您可以将它带到任何可以学习大量框架/工具的地方,而不是将时间花在 Laravel 上。无论如何,您仍然可以使用原始表达式在 laravel 中使用 sql 查询:https://laravel.com/docs/5.8/queries#raw-expressions
你可以试试这个
DB::table('d_damage')
->where('delete_flg',0)
->orderBy('create_time', 'desc')
->select('delete_flg', 'damage_id', 'create_time', 'reg_user_name', 'municipality_id', 'report_time', 'district', 'village', 'disaster_type', 'cause_of_disaster',DB::raw('(bd_major_damage1 + bd_minor_damage1 + bd_major_damage2 + bd_minor_damage2 + bd_major_damage3 + bd_minor_damage3) as damaged_building'),DB::raw('(hi_hd_deaths + hi_hd_serious_injuries + hi_hd_minor_injuries + hi_hd_missing_persons + hi_hd_sick_persons) as total_victim'))
->get();
这可能不完全是,但差不多