[英]Use raw sql query in Laravel
再會。 我有一個 sql 查詢,我已經使用 mysql 工作台測試並使用過它。 但是,我想將它集成到我的 Laravel 應用程序中,這樣我也可以對結果使用 get() 和 paginate() 函數。 查詢如下所示
SELECT applicable_areas.area
, applicable_areas.id as id
, count(stype) as supreme_court_cases
, count(atype) as appeal_court_cases
FROM applicable_areas
JOIN (
SELECT 1 AS atype, null AS stype, applicable_area_id, suitno FROM appeal_applicable_areas
UNION
SELECT null , 1 , applicable_area_id, suitno FROM supreme_applicable_areas
) AS area_types
ON area_types.applicable_area_id = applicable_areas.id
JOIN cp_cases_counsel
ON cp_cases_counsel.suitno = area_types.suitno
WHERE cp_cases_counsel.counsel_id = 38
GROUP BY applicable_areas.id
ORDER BY applicable_areas.area ASC;
在 Laravel 上
$practice_areas = DB::connection('mysql2')->table('applicable_areas')
->select(DB::raw("applicable_areas.area
, applicable_areas.id as id
, COUNT(stype) as supreme_court_cases
, COUNT(atype) as appeal_court_cases
FROM applicable_areas
JOIN (
SELECT 1 AS atype, null AS stype, applicable_area_id, suitno FROM appeal_applicable_areas
UNION
SELECT null , 1 , applicable_area_id, suitno FROM supreme_applicable_areas
) AS area_types
ON area_types.applicable_area_id = applicable_areas.id
JOIN cp_cases_counsel
ON cp_cases_counsel.suitno = area_types.suitno
WHERE cp_cases_counsel.counsel_id = 38
GROUP BY applicable_areas.id
ORDER BY applicable_areas.area ASC"))->get();
也試過這個:
$practice_areas = DB::connection('mysql2')->table('applicable_area')
->join(DB::raw("SELECT 1 AS atype, null AS stype, applicable_area_id, suitno FROM appeal_applicable_areas
UNION
SELECT null , 1 , applicable_area_id, suitno FROM supreme_applicable_areas
) AS area_types"),
function($join){
$join->on('area_types.applicable_area_id', '=', 'applicable_areas.id');
})
->join('cp_cases_counsel', 'cp_cases_counsel.suitno','=','area_types.suitno')
->select('applicable_areas.id as id','applicable_areas.area','count(stype) as supreme_court_cases',
'count(atype) as appeal_court_cases')
->where('cp_cases_counsel.counsel_id',38)
->groupBy('applicable_areas.id')->get();```
I get an error with that statement. Please, is there a way to do this?
Thanks.
$practice_areas = DB::select("SELECT 適用的區域.area , 適用的區域.id 作為id , COUNT(stype) 作為supreme_court_cases , COUNT(atype) 作為applied_court_cases FROM 適用的_areas JOIN ( SELECT 1 AS atype, null AS stype, 適用_area_id,suitno FROM上訴_applicable_areas UNION SELECT null , 1 , 適用_area_id,suitno FROMsupreme_applicable_areas ) AS area_types ON area_types.applicable_area_id =適用_areas.id JOIN cp_cases_counsel ON cp_cases_counsel.suitno = area_types.cpuses.cpuses_area_types.cpues_area_acsuitno ")->get();
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.