Sql 条令2存在两个关联查询

Sql 条令2存在两个关联查询,sql,doctrine-orm,Sql,Doctrine Orm,我有两个相关的实体,我需要一个查询来检查entityOne是否与entityTwo有两个不同的关系(额外的列作为diff字段) 一个简单的“WHERE entityTwo.diff_field=1和entityTwo.diff_field=2”不起作用 我怎样才能做到这一点 谢谢 更新: $query = $this->createQueryBuilder('one'); $query->addSelect('two')->leftJoin('one.two', 'tw

我有两个相关的实体,我需要一个查询来检查entityOne是否与entityTwo有两个不同的关系(额外的列作为diff字段)

一个简单的“WHERE entityTwo.diff_field=1和entityTwo.diff_field=2”不起作用

我怎样才能做到这一点

谢谢

更新:

  $query = $this->createQueryBuilder('one');
  $query->addSelect('two')->leftJoin('one.two', 'two');
  $query->where('two.id = :a')->setParameter('a',1);
  $query->andWhere('two.id = :b')->setParameter('b',2);
整体

class EntityOne {
     /**
     * @ORM\Id
     * @ORM\Column(type="integer", nullable=false);
     * @ORM\GeneratedValue(strategy="AUTO")
     */
    protected $id;

     /**
     * @ORM\OneToMany(targetEntity="EntityTwo", mappedBy="one")
     */
    protected $two;
}
第二实体

class EntityTwo {
     /**
     * @ORM\Id
     * @ORM\Column(type="integer", nullable=false);
     * @ORM\GeneratedValue(strategy="AUTO")
     */
    protected $id;

     /**
     * @ORM\ManyToMany(targetEntity="EntityOne", inversedBy="two", cascade={"persist"})
     * @ORM\JoinTable(name="one_two_xref")
     */
    protected $one;
}

我认为您需要两个子查询

你想(我想)选择那些有 具有diffType 1的链接Entity2和具有diffType 2的链接Entity2

如果在此文档中向下滚动到“存在于包含相关子查询的WHERE子句中”:

我认为您需要的是一个类似的查询,但有两个独立的EXISTS子查询,类似于:

WHERE EXISTS (SELECT EntityTwo ... DiffType = 1)
    AND EXISTS (SELECT EntityTwo ... DiffType = 2)

向我们展示您的数据库方案并介绍mysql/mssql/oracle/postgresql?