【问题标题】:Join query in Symfony 2在 Symfony 2 中加入查询
【发布时间】:2016-06-01 13:06:07
【问题描述】:

我是 Symfony 的新手,我有 2 个实体(不是我创建它们的):

  • 第一个实体:test1 (id,test2_id)
  • 第二个实体:test2 (id,label)

我想创建从 test where test2.label = 1 中选择的查询。

$Websites = $this->_em
    ->createQuery("
        SELECT w
        FROM \Bundle\Entity\test1 t1
        JOIN t1.test2 t2
        WHERE t2.label=1")
    ->getResult();

但是我得到了一个错误:

Bundle\Entity\test1 没有名为 test2 的关联

是否有解决方案或其他方法使其发挥作用。

【问题讨论】:

标签: php mysql sql symfony


【解决方案1】:

试试这个:

$Websites = $this->_em
->createQuery("
    SELECT w
    FROM \Bundle\Entity\test1 t1
    JOIN \Bundle\Entity\test2 t2
    WHERE t2.id = t1.test2_id AND t2.label=1")
->getResult();

你也可以使用createQueryBuilder方法

【讨论】:

    【解决方案2】:

    使用 createQueryBuilder 您可以执行以下操作

    $labelValue = 1;
    
    /* Get the EntityManager Resource */
    $em = $this->getDoctrine->getManager();
    
    $em->getRepository('AppBundle:test1')
       ->createQueryBuilder('t1')
       ->select('t1.w') /*Here you can select respective table columns */
       ->innerJoin('t1.test2_id', 't2')
       ->where('t2.label = :label') /* if label value coming from external value else ->where('t2.label = 1') and omit next line */
       ->setParameter('label',$labelValue) /*In case if your label value coming for external value */
       ->getQuery()
       ->getResult();
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-01-26
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多