gpt4 book ai didi

doctrine-orm - Doctrine DQL 计数与连接表的条件

转载 作者:行者123 更新时间:2023-12-04 04:39:34 24 4
gpt4 key购买 nike

我有以下实体:

class Restaurant
{
// ...
}

class Order
{
/**
* The Restaurant this order belongs to.
*
* @var Restaurant
*/
protected $restaurant;

/**
* The status of this order: 'pending', 'accepted' or 'rejected'.
*
* @var string
*/
protected $status;

// ...
}

餐厅可以有零个或多个订单。

我想查询所有餐厅以及订单总数,以及每个状态下的订单数。

我想出了以下查询:

SELECT r, COUNT(o.id) AS totalOrders
FROM Restaurant r
LEFT JOIN Order o WITH o.restaurant = r
GROUP BY r.id

如何获得 pendingOrders 的计数, acceptedOrdersrejectedOrders还有?

最佳答案

找到了解决办法:

SELECT r, COUNT(o.id) AS totalOrders,
SUM(CASE WHEN o.status = 'pending' THEN 1 ELSE 0 END) AS pendingOrders,
SUM(CASE WHEN o.status = 'accepted' THEN 1 ELSE 0 END) AS acceptedOrders,
SUM(CASE WHEN o.status = 'rejected' THEN 1 ELSE 0 END) AS rejectedOrders
FROM Restaurant r
LEFT JOIN Order o WITH o.restaurant = r
GROUP BY r.id

关于doctrine-orm - Doctrine DQL 计数与连接表的条件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19134381/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com