Innerjoin с orderBy или с помощью groupBy на другом столе - PullRequest
0 голосов
/ 29 июня 2018

Я использую 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 на столбце из выборки, объединенной со многими ассоциациями. Используйте вывод ходунки.

Как использовать innerjoin с функцией orderBy, может быть, мне стоит использовать groupBy в таблице Product?

...