我有一个包含2个表的数据库,animal
和species
。为了保持我的私人动物园的概况,我运行一个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条件起作用。如何使查询按预期工作?