。
在我使用学说2的Symfony应用程序中,我有两个表:约会和约会_archived。两张表都具有相同的(!(结构,并且字段相同!
我在约会中的功能:
private function getAppointments()
{
$qb = $this->createQueryBuilder('a');
$qb->leftJoin('a.instructor', 'i')
->leftJoin('i.contactdetails', 'c')
->join('a.area', 'ar');
return $qb;
}
此存储库指向我的桌子约会。
如何在此查询中添加"约会_archived"中的数据选择?我的目标是我的查询不仅考虑了我表约会中的数据,而且还考虑了我的表格中的数据,并带有存档数据约会。
我假设您的APPOINTMENTS_ARCHIVED
表是APPOINTMENTS
表的存档版本?
这意味着存档的表不映射到实体,因此无法使用DQL
获得您最好的选择是到用户本机SQL。
您可以选择多个实体而没有相关的实体。在这种情况下:
$qb = $this->createQueryBuilder('a');
$qb->addSelect('aa')
->from(AppointmentArchived::class, 'aa'); // ->join(AppointmentArchived::class, 'aa'); will also work
$qb->leftJoin('a.instructor', 'i')
->leftJoin('i.contactdetails', 'c')
->join('a.area', 'ar');
$qb->leftJoin('aa.instructor', 'aai')
->leftJoin('aai.contactdetails', 'aac')
->join('aa.area', 'aar');
在这种情况下,您必须分别加入并分别选择关系。