各位拉威尔先生,请帮帮我。我有DB作为PostgreSQL。我有四个表,如下所示:
食物: Id,名称
优点: Id、名称
Benefit_rating: id,名称
Food_benefit: Id,food_id,Benefit_id,Benefit_rating_id
我需要一个查询,当食品的id已知时,它从食品中获取食品名称(Food.name),并列出所有食品福利(Benefit_rating.name)及其评级(benefit_rating.name)。
现在,理解Food_benefit与食品、利益和利益评级之间的关系。
我不能有多对多的关系,因为透视表是这样设计的,不能改变设计。
有没有什么原始的查询建议?
发布于 2017-01-20 20:16:03
我假设您在模型之间使用的是雄辩且已经定义好的关系。
您可以使用nested eager loading
$food = Food::where('id', $foodId)
->with('foodBenefits.benefitRating', 'foodBenefits.benefit')
->first();
$food = Food::find($foodId);
$foodBenefit = FoodBenefit::where('food_id', $foodId)
->with('benefit', 'benefitRating')
->get();
https://stackoverflow.com/questions/41763304
复制相似问题