Bonjour,

J'ai cette relation :

entreprise one-to-many salarié one-to-many voiture

J'aimerais sélectionner tous les salariés qui n'ont pas de voiture mais je suis bloqué...

J'ai la contrainte de sélectionner aussi que les salariés appartenant à l'entreprise passer en paramètre et différents de celui passer en paramètre.

Voici ce que j'ai commencé à faire :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
 
    public function queryfindByEntrepriseId($entreprise, $salarie = null)
    {
        $q = $this->createQueryBuilder('salarie')
                  ->leftJoin('salarie.entreprise', 'entreprise')
                  ->addSelect('entreprise')                  
                  ->leftJoin('entreprise.salaries', 'salaries')
                  ->where('salaries.voiture = :voiture')
                  ->setParameter('voiture', null );
 
        if($salarie){
            $q->andWhere('salarie.id != :salarie')
              ->andWhere('entreprise.id = :entreprise')
              ->setParameter('salarie',$salarie);
        }else{
            $q->andWhere('entreprise.id = :entreprise');               
        }
 
        $q->setParameter('entreprise',$entreprise);
 
        return $q;
 
    }
Je comprends que cela ne puisse pas marcher, mais je ne vois pas comment faire pour que ça fonctionne...
J'imagine qu'il y a peut être une sous requête à faire?

Merci pour votre aide.