请帮帮我。Postgres函数WITH在Laravel QueryBuilder中
我已经得到了原始的SQL
WITH collections AS (
SELECT
...
FROM
...
)
SELECT
...
FROM collections c1
LEFT JOIN collections c2
...
我如何使用Laravel的QueryBuilder写呢?
请帮帮我。Postgres函数WITH在Laravel QueryBuilder中
我已经得到了原始的SQL
WITH collections AS (
SELECT
...
FROM
...
)
SELECT
...
FROM collections c1
LEFT JOIN collections c2
...
我如何使用Laravel的QueryBuilder写呢?
您可以使用Laravel的查询生成器的RAW方法(https://laravel.com/docs/5.3/queries#raw-expressions)。只需谨慎处理潜在的SQL注入漏洞。
现在我正在这样做: $ queryResult = DB :: select(“ with collections AS( SELECT .....))”; –
您可以发布您提交的整个查询语句吗? – Ronald
'$ QueryResult中= DB ::选择(” 与集合AS( SELECT tcm.shop_id,... FROM template_collection_menu AS中医 LEFT JOIN template_collection AS TC ON tc.id = tcm.template_collection_id WHERE tcm.shop_id IN (:mainShopId,:currentShopId) ORDER BY tcm.position ASC ) SELECT COALESCE(c2.shop_id,c1.shop_id)作为shop_id,... FROM集合的c1 LEFT JOIN集合C2 ON c2.template_collection_id = C1 .template_collection_id AND c1.shop_id =:mainShopId AND c2.shop_id =:currentShopId WHERE c1.shop_id =:mainShopId “,['mainShopId'=> $ mainShopId,...]) ;' –
Laravel QueryBuilder不支持'WITH'语法。你有2个选项:重写查询而不用'WITH'或使用接受原始sql查询的DB :: select()。 – AlexM