我正在使用Symfony2,我需要执行此SQL,例如:
select detformacion.* from detformacion left join formacion on detformacion.formacion_id = formacion.id left join detcurso on formacion.id = detcurso.formacion_id where detcurso.id IN ('143','144');
为此,我在我的存储库中有这个:
公共函数getSeleccion(){
$em = $this->getEntityManager();
$query = $em->createQueryBuilder()
->select('d')
->from('GitekUdaBundle:Detformacion', 'd')
->leftJoin('d.formacion', 'f')
->leftJoin('f.detcursos', 'det')
->where('det.id = :miarray')
->setParameter('miarray',array('143','144'))
->getQuery()
;
return $query->getResult();
}
我尝试使用 - > where('det.id IN:miarray'),但我一直都会遇到错误。
任何帮助或线索?
提前感谢。
更新:问题是设置参数。
答案 0 :(得分:18)
IN运算符后缺少括号:
->where('det.id IN (:miarray)')
->setParameter('miarray', array('143','144'))