我是一家房地产租赁公司的实习生。我负责在Symfony下开发CRM。
我们需要注册每个属性的可用性,以便与AirBnB等平台进行沟通并预定日期。出于历史原因,我选择每天最多保留两个可用性。
这是表的结构和一些数据: availabilities.sql
现在,我需要将仅最新修改(创建)的可用性发送到平台。
所以我现在面临的问题是,我可以通过比较来获取最大值,但是如果date_availabilities只有一行,那么我就没有这一天的可用性,因为没有比较。
这是我的查询生成器。
// Loads Availabilities
$qb = $this->getEntityManager()->getRepository(Availabilities::class)->createQueryBuilder('a')
// Get Availabilities for a property
->where('a.idProperties = :id')
->andwhere('a.dateAvailabilities BETWEEN :from AND :to')
->setParameters(array(
'id' => $id,
'from' => $from,
'to' => $to
));
// Prepares subquery
$subqb = $qb;
$subqb
->select('s')
->from('LDPlatformBundle:Availabilities', 's');
$qb
->andWhere('a.idProperties = s.idProperties')
->andWhere('a.dateAvailabilities = s.dateAvailabilities')
// Get only the lastest registered Availabilities
->andWhere('s.dateModifAvailabilities > a.dateModifAvailabilities')
dump($availabilities = $qb->getQuery()->getArrayResult());
die();
return;
我知道堆栈溢出一定是最后的选择,但是我必须找到昨天的解决方案,而我在SQL方面的实验还不够。我尝试了很多组合,但失败了。
非常感谢能帮助我的人。