三张表之间的关系
a oneToMany b
b oneToMany c
目的: 我要找到没有c数据的所有 a数据
例子: 李警察(a) 有三把枪(b) 每把枪各有子弹(c)
我要找的就是没有子弹的警察. 加入王警察的三把枪, 两把没有子弹, 但有一把枪有子弹则不选择他. 我要找到没有任何子弹的警察.
所以我写了如下的代码
$em = $this->getDoctrine()->getManager();
$qb = $em->createQueryBuilder();
$qb->select('a', 'b')
->from('aaBundle:a', 'a')
->leftJoin('a.b', 'b')
->leftJoin('b.c', 'c')
->where('c.id is null');
$query = $qb->getQuery();
$result = $query->getArrayResult();
但是却把王警察 即 一把枪中有子弹的警察也找了出来.
这个代码如何修改呢.
先找没子弹的枪,再找有枪(枪有子弹的警察)的ID,再NOT IN