2016-04-21 60 views
0

我想運行一個查詢。我有兩個多對多的實體。ManytoMany實體選擇查詢原則

我對這些都查詢實體下方

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

如果我這樣做,在兩個查詢一樣,它的作品。但我想在1選擇查詢。有什麼想法我可以做到這一點?

在此先感謝。

回答

0

試試這個:

$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

謝謝你,但我以前嘗試這樣做,我得到不同的結果。 –

+0

這是很正常的,你有兩個不同的結果,因爲你在同一個查詢中創建兩個關節。 –

+0

是的,但我想要得到的結果是我在這兩個查詢中得到的。我可以使用工會或類似的東西嗎? –