我有两个实体餐厅和美食,餐厅与美食有多对多的关系,有趣的是,美食。
因此,如果我有两家餐厅(rest1、rest2)和两种美食(印度、中国),而且两家餐厅都只有印度菜
rest1 indian
rest2 indian
我想通过查询构建器执行 DQL 查询,该查询返回美食列表以及分配了美食的餐厅数量。所以,理论上是这样的。
$qb->select('rc AS cuisine, COUNT(r) AS restaurantCount')
->from('Restaurant', 'r')
->join('r.cuisines', 'rc')
->addGroupBy('rc');
所以,结果,我想
cuisine: indian restaurantCount: 2
我知道这会产生错误,因为需要返回主要实体。
我也知道这可以通过创建和使用多对多的逆来实现,但我试图避免将美食赋予餐厅属性以避免双向关系的复杂性。
将餐厅作为主要选择表是否可以获得所需的结果?