[英]How can I do this SQL with Query Builder Laravel
I'm new to Laravel and I'm confused how to do SQL below in Query Builder.我是 Laravel 的新手,我很困惑如何在 Query Builder 中执行下面的 SQL。
SELECT
*
FROM (
SELECT
i.ID
,l.NOMELOJA
, CONVERT(VARCHAR,DATALOG, 103) AS DATA
, DATEPART(HOUR,DATALOG) AS HORA
, CASE WHEN LOGINTEGRACAO = 'LOJA CONSULTADA COM SUCESSO' THEN 'OK' ELSE 'NOK' END AS STATUS
FROM DMN_INTEGRACAO_LOG i, DMN_LOJAS_LINKED_SERVER l
WHERE TABELA='DMN_LOJAS_ORDERS'
AND DATALOG >= (SELECT CONVERT(nvarchar, GETDATE(), 112))
AND i.ID = l.ID
) A
WHERE STATUS = 'NOK'
GROUP BY ID
, NOMELOJA
, CONVERT(VARCHAR,DATA, 103)
, HORA
, STATUS
ORDER BY 1,2,3;
Please refer to the documentation .请参阅文档。
When I need complex queries as this one I like to use RAW joining.当我需要像这样的复杂查询时,我喜欢使用 RAW 连接。 At its base, your query is a more complicated version of the following one
在其基础上,您的查询是以下查询的更复杂版本
Model::where('status', 'NOK')
->leftJoin(DB::raw('SELECT * FROM A /*use raw query */'))
->groupBy('ID')
->orderBy('1')
->get()
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.