此问题在此处已有答案:
How to use WITH clause in Laravel Query Builder(2个答案)
8小时前关门了。
我如何在雄辩中生成这个(postgresql)查询的等效查询
WITH result as (
select *, order_id as alias_id from orders
)
SELECT *
FROM result;
我应该可以通过内部查询作为雄辩的建设者查询。
此问题在此处已有答案:
How to use WITH clause in Laravel Query Builder(2个答案)
8小时前关门了。
我如何在雄辩中生成这个(postgresql)查询的等效查询
WITH result as (
select *, order_id as alias_id from orders
)
SELECT *
FROM result;
我应该可以通过内部查询作为雄辩的建设者查询。
2条答案
按热度按时间alen0pnh1#
您不需要CTE(with expression)。CTE是子查询概念的扩展。最初是为了可以重复使用它,而不是每次使用都编写它。但由于您只使用它一次,因此使用子查询就可以了。您的查询可以重写为:
根据你的描述,我假设上面的子查询是 * 内部查询作为雄辩的构建器查询 *。否则它减少到
select *, order_id as alias_id from orders
。我不知道Laravel/Eloquent Query Builder,但我认为它应该可以轻松处理简单的子查询。
lymnna712#
正如注解中所述,Laravel在它的查询生成器中不支持WITH子句(公共表表达式)。但是,您可以以原始形式传递它。
我在评论中提到了一个包,我发现
staudenmeir/laravel-cte
运行得很好,根据你的laravel版本,你可能需要安装一个特定的composer
版本。安装了这个包之后,您可以像这样表达您的查询,使它看起来最像原始SQL: