【问题标题】:Convert SQL with nested queries to Laravel Eloquent将带有嵌套查询的 SQL 转换为 Laravel Eloquent
【发布时间】:2021-05-27 15:58:15
【问题描述】:

我需要将从 Access 获得的这个查询转换为我的 remake 数据库项目的 Laravel eloquent,这就是我所做的,但我没有与原始 sql 相同的结果,谢谢。

    SELECT T_Sites.Code_Region, T_Sites.Nom_Site, T_CLM.N_CLM, T_Port.N_Port,
        T_Vlan.IP_Vlan, T_Ref_Vlan.Id_Referentiel, T_Ref_Vlan.Nom_Vlan,
        T_Vlan.Dt_Creat, T_Vlan.Id_Vlan, T_Vlan.IP_HSRP, T_Vlan.IP_SousReseaux,
        T_CLM.Id_CLM, T_Vlan.Masque
    FROM (T_CLM 
        INNER JOIN (
            (T_Port INNER JOIN T_Vlan ON T_Port.Id_Port = T_Vlan.Id_Port)
            LEFT JOIN T_Ref_Vlan ON T_Vlan.Id_Referentiel = T_Ref_Vlan.Id_Referentiel
        )
        ON T_CLM.Id_CLM = T_Port.Id_CLM)
        INNER JOIN T_Sites ON T_CLM.Id_Site = T_Sites.Id_Site
    ORDER BY T_CLM.Id_CLM DESC
    WITH OWNERACCESS OPTION;
// what i did
    $SuiviVlan = DB::table('T_CLM')
                ->join('T_Sites', 'T_CLM.Id_Site', '=', 'T_Sites.Id_Site')
                ->join('T_Port', 'T_CLM.Id_CLM' , '=', 'T_Port.Id_CLM')
                ->join('T_Vlan', 'T_Vlan.Id_Port', '=', 'T_Port.Id_Port')
                ->leftjoin('T_Ref_Vlan', 'T_Ref_Vlan.Id_Referentiel', '=', 'T_Vlan.Id_Referentiel')
                ->select('T_Sites.Code_Region','T_Sites.Nom_Site','T_CLM.N_CLM','T_Port.N_Port','T_Vlan.IP_Vlan',
                'T_Ref_Vlan.Id_Referentiel', 'T_Ref_Vlan.Nom_Vlan', 'T_Vlan.Dt_Creat', 'T_Vlan.Id_Vlan', 'T_Vlan.IP_HSRP', 
                'T_Vlan.IP_SousReseaux', 'T_CLM.Id_CLM', 'T_Vlan.Masque')
                ->orderBy('T_CLM.Id_CLM', 'desc')
                
                ->get();

【问题讨论】:

  • 到目前为止你做了什么?

标签: sql database laravel eloquent backend


【解决方案1】:
// It was the correct laravel eloquent , thanks btw for help.
$SuiviVlan = DB::table('T_CLM')
            ->join('T_Sites', 'T_CLM.Id_Site', '=', 'T_Sites.Id_Site')
            ->join('T_Port', 'T_CLM.Id_CLM' , '=', 'T_Port.Id_CLM')
            ->join('T_Vlan', 'T_Vlan.Id_Port', '=', 'T_Port.Id_Port')
            ->leftjoin('T_Ref_Vlan', 'T_Ref_Vlan.Id_Referentiel', '=', 'T_Vlan.Id_Referentiel')
            ->select('T_Sites.Code_Region','T_Sites.Nom_Site','T_CLM.N_CLM','T_Port.N_Port','T_Vlan.IP_Vlan',
            'T_Ref_Vlan.Id_Referentiel', 'T_Ref_Vlan.Nom_Vlan', 'T_Vlan.Dt_Creat', 'T_Vlan.Id_Vlan', 'T_Vlan.IP_HSRP', 
            'T_Vlan.IP_SousReseaux', 'T_CLM.Id_CLM', 'T_Vlan.Masque')
            ->orderBy('T_CLM.Id_CLM', 'desc')
            
            ->get();

【讨论】:

    猜你喜欢
    • 2020-10-03
    • 1970-01-01
    • 1970-01-01
    • 2015-02-24
    • 1970-01-01
    • 2019-03-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多