所以有一个表Users和一个左连接表Coupons。我们想加入优惠券,然后我们可以通过$entity->getCoupons(),这很简单。但是有两种优惠券,我必须加入这张桌子两次:

  $qb->addSelect('c')->leftJoin('x.coupons', 'c', 'WITH', 'c.type = 1');
  $qb->addSelect('c2')->leftJoin('x.coupons', 'c2', 'WITH', 'c.type = 2');

好吧,现在怎么办?只有一个getCoupons()。最好是用cc2别名询问优惠券

最佳答案

只需在where子句中添加IN语句,您将获得对象数组:

$qb->select('c')
   ->from('User', 'u')
   ->leftJoin('u.coupons', 'c')
   ->where('c.type IN (1,2)');

关于mysql - 教义2,联接表两次,如何获得其实体?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/36202900/

10-16 15:31