我有一个places表,它有一个category_id作为外键,分支属于模型中的Place。
我想从每个地方得到每个category_id的3个分支
我尝试了下面的查询,但它仍然返回一个地方,假设id 2和3具有相同的category_id,它将返回两个甚至超过3个分支。
我如何修改它,使它只返回3个分支的每个地方,只有我指定的类别?
这里是我的查询:
$places = Place::select(
'places.id as place_id',
'places.name',
'places.description',
'places.tags as place_tags',
'branches.id as branch_id',
'branches.name as branch_name',
'categories.id as category_id',
'categories.name')
->leftJoin('branches', 'places.id', '=', 'branches.place_id')
->leftJoin('categories', 'categories.id', '=', 'places.category_id')
->whereIn('places.category_id', [1, 2, 3])
->get();
1条答案
按热度按时间hlswsv351#
你可以使用laravel关系来代替leftjoin。
在地点模型中定义: