原则:entityManager-> createQuery中的WHERE条件不起作用

时间:2019-04-20 22:53:29

标签: doctrine symfony3.x

我有一个包含2个表的数据库,animalspecies。为了保持我的私人动物园的概况,我运行一个Symfony3应用程序。现在,对于非常特定的出口,我需要一个sql查询以返回具有特定日期和特定名称的出生日期的所有动物:例如,所有出生于2001-2009年的动物,名为Waldemar。

不幸的是,WHERE条件不起作用。结果包含所有动物,具有任何出生日期和任何名称:

   $from = new \DateTime('2001-01-01 00:00:00');
   $to = new \DateTime('2010-01-01 00:00:00');

   $query = $entityManager->createQuery(
    'SELECT c
    FROM App\Entity\Animal c
    LEFT JOIN App\Entity\Species s
    WHERE c.species = s.id 
      AND c.animalName IS :animalname
      AND c.dob BETWEEN :from AND :to
    ORDER BY c.dob DESC
    ')
    ->setParameter('from', $from)
    ->setParameter(':animalname', 'Waldemar')
    ->setParameter('to', $to);

    return $query->execute();

仅与JOIN相关的WHERE条件起作用。如何使查询按预期工作?

0 个答案:

没有答案