【发布时间】:2018-01-17 17:39:46
【问题描述】:
我有 4 个表格、项目、列表、catitem_item 和 item_listing。
items和listing是多对多的关系。 items 和 catitems 也是多对多的关系。
catitems 包含项目类别的列表。 列表就像物品所在的位置。 示例列表商店 A 可以有 item chair,并且 item chair 有多个 catitem 类别。
我的目标是获取类别列表下的项目,例如类别 1 AND 2 AND 3 ($cats) 以及该项目所在的列表信息。
因此,如果有 6 个椅子列表,它将返回 6 个椅子结果。
这是我目前的查询。
$items = DB::table('items')
->join('catitem_item', 'catitem_item.item_id', '=', 'items.id')
->join('item_listing', 'item_listing.item_id', '=', 'items.id')
->join('listings', 'item_listing.listing_id', '=', 'listings.id')
->whereIn('catitem_item.catitem_id', $cats)
//->groupBy('items.id')
//->having(DB::raw('count(*)'), '=', count($cats))
->select('items.id', 'items.name', 'items.price', 'items.slug', 'item_listing.listing_id', 'listings.name as listing_name', 'listings.slug as listing_slug')
->get();
【问题讨论】:
-
laravel 版本是什么?
-
它的 laravel 5.3
-
你能发一个sqlfiddle.com
标签: php mysql laravel eloquent laravel-eloquent