createQueryBuilder IN 子句

发布于 2024-12-12 03:41:52 字数 985 浏览 0 评论 0原文

我正在使用 Symfony2,我需要执行以下 SQL:

 从 detformacion 选择 detformacion.*
        左连接队形
        关于 detformacion.formacion_id = formacion.id
        左连接 detcurso
        上 formacion.id = detcurso.formacion_id
        其中 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') 但我总是收到错误。

有什么帮助或线索吗?

提前致谢。

更新:问题在于设置参数。

I´m working with Symfony2 and I need to execute this SQL for example:

      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');

For that, I have this in my Repository:

public function 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();
    }

I tried with ->where('det.id IN :miarray') but I´m getting errors all the time.

Any help or clue?

thanks in advance.

UPDATE: The problem is setting the parameters.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

绮筵 2024-12-19 03:41:52

IN 运算符后缺少括号:

->where('det.id IN (:miarray)')
->setParameter('miarray', array('143','144'))

Missing parentheses after the IN operator :

->where('det.id IN (:miarray)')
->setParameter('miarray', array('143','144'))
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文