相同的ID,如果一个不正常,则不是相同的值,将所有ID排除在外

时间:2016-05-25 14:45:47

标签: mysql sql symfony

你好,我通过ManyToOne双向关系在symfony join中有两个表。 文章和日期。

在我的表格(日期)中,我有:

+----------------------------
| id   | a.id  | OK OR NOT ? 
+----------------------------
| 1    | 4     |      OK 
| 2    | 4     |      OK 
| 3    | 6     |      OK 
| 4    | 5     |      OK 
| 5    | 4     |   **NOTOK** 
----------------------------

$qb = $this->createQueryBuilder('a')
           ->select('a')
           ->leftJoin('a.dates','d')
           ->where('CONDITION OK OR NOT') 
           ->orderBy('a.id', 'ASC');
return $qb->getQuery()->getResult();

我怎样才能得到除a.id:4以外的所有文章,因为其中一篇文章没有对条件作出反应???

1 个答案:

答案 0 :(得分:0)

你应该使用 - > notIn():

$qb = $this->createQueryBuilder('a')
   ->where($qb->expr()->notIn('a.id','SELECT a.id FROM AppBundle:Articles LEFT JOIN a.dates d WHERE d.OK_OR_NOT = "**NOTOK**"'))
   ->orderBy('a.id', 'ASC');
return $qb->getQuery()->getResult();

http://www.doctrine-project.org/api/orm/2.5/source-class-Doctrine.ORM.Query.Expr.html#427-444