2016-04-21 11 views
0

Ich versuche, eine Abfrage auszuführen. Ich habe zwei viele bis viele Entitäten.ManytoMany Entities Auswählen Abfrage Doctrine

Meine Anfrage für diese beiden Entitäten unter

$query = $user->createQueryBuilder('u') 
       ->join('u.products', ua') 
       ->Where('ua.id In (:uproducts)') 
       ->setParameters(array(
        'uproducts' => $userproducts)) 
       ->getQuery(); 

       $query = $user->createQueryBuilder('u') 
        ->join('u.price,'up') 
        ->Where('up.id In (:uprice)') 
        ->setParameters(array(
         'uprice'=>$userprice)) 
        ->getQuery(); 

Wenn ich wie in zwei Abfragen zu tun, dass es funktioniert. Aber ich will das in 1 select abfragen. Gibt es eine Idee, wie ich das machen könnte?

Vielen Dank im Voraus.

Antwort

0

Versuchen Sie folgendes:

$query = $user->createQueryBuilder('u') 
      ->join('u.products', 'ua') 
      ->join('u.price,'up') 
      ->Where('ua.id In :uproducts') 
      ->andWhere('up.id In :uprice') 
      ->setParameters(
      array (
       'uproducts' => $userproducts, 
       'uprice'=>$userprice 
      ) 
      ) 
      ->getQuery(); 
+0

Danke, aber ich versuchte, dies vor, und ich bin immer ein anderes Ergebnis. –

+0

Es ist normal, dass Sie zwei verschiedene Ergebnisse haben, weil Sie zwei Verbindungen für dieselbe Abfrage erstellen. –

+0

Ja, aber ich möchte das Ergebnis, was ich in diesen beiden Abfragen bekomme. Kann ich Union oder etwas Ähnliches benutzen? –

Verwandte Themen