cari

Rumah  >  Soal Jawab  >  teks badan

symfony - Cara menggunakan leftJoin dan Sertai dalam persatuan jadual dalam createQuery

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.

習慣沉默習慣沉默2870 hari yang lalu568

membalas semua(1)saya akan balas

  • 黄舟

    黄舟2017-05-16 16:46:41

    Mula-mula cari pistol tanpa peluru, kemudian cari ID pistol (anggota polis dengan peluru), kemudian TIDAK DALAM

    balas
    0
  • Batalbalas