Hubungan antara ketiga-tiga jadual
a oneToMany b
b oneToMany c
Tujuan: Saya ingin mencari semua data tanpa c data
Contoh: Pegawai Polis Li (a) mempunyai tiga pistol (b) setiap pistol mempunyai peluru (c)
Apa yang saya ingin cari ialah polis tanpa peluru, tambah tiga pistol Polis Wang, dua daripadanya tidak mempunyai peluru, tetapi jika satu pistol ada peluru, maka jangan pilih dia peluru.
Jadi saya tulis kod berikut
$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();
Tetapi mereka juga menemui Polis Wang, anggota polis dengan peluru di dalam pistolnya.
Bagaimana untuk mengubah suai kod ini.
Mula-mula cari pistol tanpa peluru, kemudian cari ID pistol (anggota polis dengan peluru), kemudian TIDAK DALAM