2016-04-21 2 views
0

Я пытаюсь запустить запрос. У меня есть от двух до многих лиц.ManytoMany Entities Select Query Doctrine

Мой запрос для этих двух сущностей ниже

$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 select query. Есть ли идеи, как я могу это сделать?

Заранее спасибо.

ответ

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

Да, но я хочу, чтобы весь результат получал в этих двух запросах. Могу ли я использовать союз или что-то в этом роде. –

Смежные вопросы