【问题标题】:How to Convert SQL to Laravel Query如何将 SQL 转换为 Laravel 查询
【发布时间】:2019-09-23 17:03:06
【问题描述】:

我想用如下所示的别名列构建一些东西,但我不知道如何使它成为 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 Query Builder 的 Eloquent 以便在我的控制器中使用。

【问题讨论】:

  • 为什么要在没有任何条件的外部使用子查询?

标签: sql laravel eloquent query-builder laravel-query-builder


【解决方案1】:

你可以试试这个

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();

这可能不完全,但差不多

【讨论】:

  • 谢谢,我已经明白了。我使用了基于表(d'damage')的视图。谢谢你的回答!
【解决方案2】:

如果我是你,你只是坚持学习 SQL 查询,因为你把它带到任何可以学习很多框架/工具的地方,而不是把时间花在 Laravel 上。无论如何,您仍然可以使用原始表达式在 laravel 中使用 sql 查询:https://laravel.com/docs/5.8/queries#raw-expressions

【讨论】:

    猜你喜欢
    • 2021-10-11
    • 2017-04-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-07-14
    • 1970-01-01
    • 2019-12-21
    • 2020-10-03
    相关资源
    最近更新 更多