@NubasLol

Doctrine почему не рабоатет dql, что я делаю не так?

$query = $entityManager->createQuery(
            'SELECT MAX(employee.salary) FROM
                AppBundle:Employee employee
                JOIN  AppBundle:Department department
                WHERE department.id = :id'
        )->setParameter('id', $department->getId());

        $result = $query->getSingleScalarResult();


почему- то оно игнорит сравнение department.id = :id , и всегда выдает результат .

$department->getId() который равен 32 только должен быть получен результат, ведь в нем есть сотрудник и больше нигде .Как такое сделать?
  • Вопрос задан
  • 455 просмотров
Решения вопроса 1
voronkovich
@voronkovich
Вы запрос неправильно составляете. Должно быть примерно так (полагаю, у вас сконфигурирована связь @ManyToOne между Employee и Department):

SELECT MAX(employee.salary)
FROM AppBundle:Employee employee
JOIN employee.department department
WHERE department.id = :id


Можно сделать без доп. соединения, если использовать DQL-функцию IDENTITY:

SELECT MAX(employee.salary)
FROM AppBundle:Employee employee
WHERE IDENTITY(employee.department) = :id
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы