Die Beziehung zwischen den drei Tabellen
a oneToMany b
b oneToMany c
Zweck: Ich möchte alle A-Daten ohne C-Daten finden
Beispiel: Polizist Li (a) hat drei Waffen (b) jede Waffe hat Kugeln (c)
Was ich finden möchte, ist der Polizist ohne Kugeln. Fügen Sie die drei Waffen von Polizei Wang hinzu, zwei davon haben keine Kugeln, aber wenn eine Waffe Kugeln hat, dann wählen Sie ihn nicht. Ich möchte den Polizisten ohne Kugeln finden Kugeln.
Also habe ich den folgenden Code geschrieben
$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();
Aber sie fanden auch den Polizisten Wang, den Polizisten mit einer Kugel in seiner Waffe.
So ändern Sie diesen Code.
先找沒子彈的槍,再找有槍(槍有子彈的警察)的ID,再NOT IN