Sql 条令2存在两个关联查询
我有两个相关的实体,我需要一个查询来检查entityOne是否与entityTwo有两个不同的关系(额外的列作为diff字段) 一个简单的“WHERE entityTwo.diff_field=1和entityTwo.diff_field=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
$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?