首页 > 解决方案 > 使用 orderBy 进行内连接或在其他表上使用 groupBy

问题描述

我正在使用 Symfony 4 和 Doctrine,并且我有一个 DQL 查询问题,我有两个具有类型和产品关系的表,一个类型可以有很多产品,一个产品可以有一个类型。如何编写一个查询,将记录返回给我按类型和产品相对于价格排序的记录?

public function getAllMainOrderByQueue()
{
    return $this->createQueryBuilder('b')
        ->innerJoin('b.children', 'children')
        ->addSelect('children')
        ->andWhere('b.parent IS NULL')
        ->andWhere('b.isDeleted = :value')->setParameter('value', false)
        ->andWhere('children.isDeleted = :v')->setParameter('v', false)
        ->orderBy('b.name', 'ASC')
        ->addOrderBy('children.price', 'ASC')
    ;
}

当我在上面使用此代码时,出现错误:

无法使用 LIMIT 和 ORDER BY 对来自 fetch 连接到多关联的列的查询选择不同的标识符。使用输出步行者。

如何使用带有 orderBy 函数的innerjoin ,也许我应该在 Product 表上使用 groupBy?

标签: sqlsymfonydoctrineinner-joinsymfony4

解决方案


推荐阅读