Sql 三重关系QueryBuilder symfony(我到底在做什么?)
让我解释一下我是如何做事情的(顺便说一句,也许不是最好的方式)。 我想加入我的StoreSchedule实体(它包含一个三重关系:store(我在这里储存有关地址、名称、店铺图片的所有信息)、days(一周中的7天)和Schedule(只有像'09:00-22:00'这样的字符串) 为了结合这3个实体,我制作了StoreSchedule,它有一个三重关系,在这3个信息之间,我可能解释得不好,让我给你看一些屏幕 我已尝试在我的存储库中使用QueryBuilder执行的操作: 我是如何在StoreSchedule表中构建内容的: 我的时间表: Days表包含一周中的7天。这可能是显而易见的,也可能不是 问题是,我不知道如何进行我需要的查询:一个从Store获取所有内容并加入StoreSchedule的查询,其中ID=Store.ID 我想用商店的ID获取天数和日程安排 我可以用查询生成器来做吗 我必须修改我的数据库吗?我的关系好吗 致以最良好的祝愿Sql 三重关系QueryBuilder symfony(我到底在做什么?),sql,symfony,doctrine,Sql,Symfony,Doctrine,让我解释一下我是如何做事情的(顺便说一句,也许不是最好的方式)。 我想加入我的StoreSchedule实体(它包含一个三重关系:store(我在这里储存有关地址、名称、店铺图片的所有信息)、days(一周中的7天)和Schedule(只有像'09:00-22:00'这样的字符串) 为了结合这3个实体,我制作了StoreSchedule,它有一个三重关系,在这3个信息之间,我可能解释得不好,让我给你看一些屏幕 我已尝试在我的存储库中使用QueryBuilder执行的操作: 我是如何在Store
ps:希望我说得够清楚。你把它弄得太复杂了。你可以清除days表和StoreSchedule。只需在Store和(Store)Schedule之间建立一个多对一关系。在Schedule表中添加一列“day”。如果你存储了一天的数字,一个短整数就可以了。请参阅php 对于您的查询(第一个链接),您不需要WHERE子句。条令将自动为您加入相关数据
public function getAllContentStoreAndSchedule()
{
return $this->createQueryBuilder('st')
->leftJoin('st.schedule', 'sc')
->addSelect('sc')
->orderBy('st.name', 'ASC')
->addOrderBy('sc.day', 'ASC')
->getQuery()
;
}
非常感谢,伊玛,试试看!