2015-09-17 151 views
0

我有一個查詢在MySQL:Laravel查詢生成器 - 轉換的MySQL quert到Laravel查詢生成器

SELECT student, ((SUM(mark1)+SUM(mark2))/SUM(mark3)) AS avg FROM your_table 

SELECT student, (mark1+mark2-mark3) AS result FROM your_table 

我想將它們轉換爲Laravel的查詢生成器格式的查詢。

但我找不到任何方式來做到這一點。

+0

有什麼辦法? –

+0

感謝您的回答,但我喜歡避免DB:原始。有什麼辦法嗎? –

回答

1

你需要像這樣

Student::select(DB::raw('student, ((SUM(mark1)+SUM(mark2))/SUM(mark3)) AS avg ')->get(); 
+0

感謝您的回答,但我喜歡避免DB:raw。有什麼辦法嗎? –

+0

Querybuilder試圖幫助你編寫SQL ...它是一個幫手。所以你寫的所有php最終都會被轉換成SQL。並不是所有的情況都適合它,儘管如此,你必須使用DB :: raw()作爲高級用例。這不是一件壞事,所以不要因爲它是事實而賣掉自己。無論如何,原始SQL比PHP快10倍。 – Kyle

+0

是的,但BD:RAW有安全漏洞,所以每個人都應該儘量避免這種情況。 –

0

感謝您的幫助,但我已經找到了解決方案 -

$baseQuery = DB::table('employee')->select('employee_name', DB::raw('employee_salary/employee_extension as employee_salary'), 'employee_position', 'employee_city', 'employee_extension',"employee_joining_date", 'employee_age', 'employee_id'); 

應該在這個格式