Mysql 条令2,连接表两次,如何获取其实体?

Mysql 条令2,连接表两次,如何获取其实体?,mysql,symfony,join,doctrine-orm,Mysql,Symfony,Join,Doctrine Orm,因此,有一个表用户和一个左连接表优惠券。我们想加入优惠券,然后我们就可以通过$entity->get优惠券(),这很简单。但是有两种优惠券,我必须加入这张桌子两次: $qb->addSelect('c')->leftJoin('x.coupons', 'c', 'WITH', 'c.type = 1'); $qb->addSelect('c2')->leftJoin('x.coupons', 'c2', 'WITH', 'c.type = 2'); 好吧,现在怎

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

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

好吧,现在怎么办?只有一个
get优惠券()
。最好是通过
c
询问优惠券,
c2
别名

只需将语句添加到where子句,您将获得一组对象:

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