symfony - Comment utiliser leftJoin et Join dans une association de table dans createQuery
習慣沉默
習慣沉默 2017-05-16 16:44:41
0
1
497

La relation entre les trois tables

a oneToMany b
b oneToMany c

Objectif : je veux trouver toutes les données a sans données c
Exemple : le policier Li (a) a trois armes (b) chaque arme a des balles (c)
Ce que je veux trouver, c'est le policier sans balles. Ajoutez les trois pistolets de Police Wang, deux d'entre eux n'ont pas de balles, mais si un pistolet a des balles, alors ne le choisissez pas, je veux trouver le policier sans balles. balles.

J'ai donc écrit le code suivant

$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();

Mais ils ont également trouvé Police Wang, le policier avec une balle dans son arme.
Comment modifier ce code.

習慣沉默
習慣沉默

répondre à tous(1)
黄舟

Cherchez d'abord l'arme sans balles, puis cherchez l'identité de l'arme (le policier avec des balles), puis PAS DANS

Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal