简体   繁体   English

在 Laravel 查询生成器中构建原始查询

[英]Building a raw query into the Laravel Query Builder

Could anyone please help me to build the following query into the Laravel Query Builder.谁能帮我将以下查询构建到 Laravel 查询生成器中。 I only know how to query into the database using raw query.我只知道如何使用原始查询查询数据库。

SELECT ru.external_ref_no AS SID, usd.user_name AS Username, rs.servicecode AS Package, rc.clientdesc as Entity, rc.clientip as NAS_IP,
ROUND((ROUND((SUM(usd.FREE_UPLOAD_OCTETS)/1048576)))/1024,2) AS Upload,
ROUND((ROUND((SUM(usd.FREE_DOWNLOAD_OCTETS)/1048576)))/1024,2) AS Download,
ROUND((ROUND((SUM(usd.FREE_UPLOAD_OCTETS)/1048576)))/1024,2) + ROUND((ROUND((SUM(usd.FREE_DOWNLOAD_OCTETS)/1048576)))/1024,2) AS Total_Usage
FROM user_session_detail usd, radservice rs, radclient rc, radgroup rg, raduser ru 
WHERE ru.username=usd.user_name AND rs.serviceid=usd.service_id AND rg.groupid=usd.group_id 
AND usd.client_id=rc.clientid AND usd.SESSION_START_TIME > '2021-09-30 00.00.01' AND usd.SESSION_START_TIME < '2021-09-30 23.59.59'
GROUP BY usd.user_name
HAVING (ROUND((SUM(usd.FREE_UPLOAD_OCTETS)/1048576)))/1024 + (ROUND((SUM(usd.FREE_DOWNLOAD_OCTETS)/1048576)))/1024 > 15
AND (ROUND((SUM(usd.FREE_UPLOAD_OCTETS)/1048576)))/1024 + (ROUND((SUM(usd.FREE_DOWNLOAD_OCTETS)/1048576)))/1024 < 20;

your sql query is very customized and can not be written by eloquent and query builder so you can run it as a raw sql like this:您的 sql 查询是非常定制的,不能由 eloquent 和查询生成器编写,因此您可以像这样将其作为原始 sql 运行:

$results = DB::select("... your customized sql query ...");

then you can pass the variable $results to your blade:然后你可以将变量$results传递给你的刀片:

return view('reports.secretuserlist',compact('results'));

in the blade you can access the data via $results variable在刀片中,您可以通过$results变量访问数据

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM