Mysql 与最近创建的第一个条目左连接
我有一个相当复杂的查询,如下所示:Mysql 与最近创建的第一个条目左连接,mysql,sql,symfony,doctrine-orm,greatest-n-per-group,Mysql,Sql,Symfony,Doctrine Orm,Greatest N Per Group,我有一个相当复杂的查询,如下所示: return $this->createQueryBuilder('s') ->select('s') ->addSelect('COUNT(p.id) as HIDDEN c_id') ->leftJoin('s.owner', 'o') ->leftJoin('s.userPictures', 'p
return $this->createQueryBuilder('s')
->select('s')
->addSelect('COUNT(p.id) as HIDDEN c_id')
->leftJoin('s.owner', 'o')
->leftJoin('s.userPictures', 'p')
->leftJoin('o.transactions', 't')
->leftJoin('t.packType', 'pt')
->where('pt.id =:packId')
->setParameter('packId', $packId)
->andWhere('s.expirydate >=:expiryDate')
->setParameter('expiryDate', new \DateTime('now'))
->andWhere('c_id <:numberOfPictures')
->setParameter('numberOfPictures', $numberOfPictures)
->orderBy("c_id", 'DESC')
->groupBy('p.id')
->getQuery()
;
看一看,上一个解决方案使用了
左连接
@MatTheCat不理解左连接如何解决这个问题“左连接的工作原理是当[t1.created]处于其最大值时,没有[t2.created]具有更大的值,s2行的值将为空。”
class Transaction
{
/**
* @var datetime $created
* @Gedmo\Timestampable(on="create")
* @ORM\Column(type="datetime")
*/
protected $created;
}