如何在 doctrine dql 中实现 intersect
How to implement intersect in doctrine dql
我正在寻找一种将相交函数 sql 实现到 doctrine dql 中以将其用于某些查询的方法。这是我想与他们的结果相交的查询:
$sql1 = "SELECT distinct o1 FROM Application\Entity\Object1 o1 INNER JOIN Application\Entity\Object2 o2 WITH o2.fkObject1 = o1.pkObject1 WHERE o1.etat = 'valide' AND o2.pkObject2 = $id ";
$sql2 = "SELECT distinct o1 FROM Application\Entity\Object1 o1 INNER JOIN Application\Entity\Object2 o2 WITH o2.fkObject1 = o1.pkObject1 WHERE o1.etat = 'attente' AND o2.pkObject2 = $id_2 ";
$sql = "sql1 INTERSECT $sql2 ";
// returns [语法错误] 第 0 行,第 556 列:错误:字符串预期结束,得到 'INTERSECT'
$query = $this->getEntityManager()->createQuery($sql);
$results = $query->getResult();
谢谢。
它对我有用的方式是像这样使用太多内部连接:
$sql = "SELECT distinct o1
FROM Application\Entity\Object1 o1
INNER JOIN Application\Entity\Object2 o2 WITH o2.fkObject1 = o1.pkObject1
INNER JOIN Application\Entity\Object2 o3 WITH o3.fkObject1 = o1.pkObject1
WHERE o1.etat = 'valide'
AND o2.pkObject2 = $id
AND o1.etat = 'attente'
AND o3.pkObject3 = $id_2 ";
希望对您有所帮助。
我正在寻找一种将相交函数 sql 实现到 doctrine dql 中以将其用于某些查询的方法。这是我想与他们的结果相交的查询:
$sql1 = "SELECT distinct o1 FROM Application\Entity\Object1 o1 INNER JOIN Application\Entity\Object2 o2 WITH o2.fkObject1 = o1.pkObject1 WHERE o1.etat = 'valide' AND o2.pkObject2 = $id ";
$sql2 = "SELECT distinct o1 FROM Application\Entity\Object1 o1 INNER JOIN Application\Entity\Object2 o2 WITH o2.fkObject1 = o1.pkObject1 WHERE o1.etat = 'attente' AND o2.pkObject2 = $id_2 ";
$sql = "sql1 INTERSECT $sql2 ";
// returns [语法错误] 第 0 行,第 556 列:错误:字符串预期结束,得到 'INTERSECT'
$query = $this->getEntityManager()->createQuery($sql);
$results = $query->getResult();
谢谢。
它对我有用的方式是像这样使用太多内部连接:
$sql = "SELECT distinct o1
FROM Application\Entity\Object1 o1
INNER JOIN Application\Entity\Object2 o2 WITH o2.fkObject1 = o1.pkObject1
INNER JOIN Application\Entity\Object2 o3 WITH o3.fkObject1 = o1.pkObject1
WHERE o1.etat = 'valide'
AND o2.pkObject2 = $id
AND o1.etat = 'attente'
AND o3.pkObject3 = $id_2 ";
希望对您有所帮助。