这是我的代码:
return self::join('item_tags','tags.id', '=','item_tags.tags_id')
->join('items','items.id', '=','item_tags.items_id')
->join('item_images','item_tags.items_id','=','item_images.items_id')
->join('item_sellers','item_sellers.items_id','=','items.id')
->orderBy('item_sellers.price','asc')
->groupBy('item_sellers.items_id')
->paginate($paginate);
项目表
item_sellers表
我得到1466.00的价格而不是1400.00的价格,任何人都可以帮我解决这个问题吗?三江源
PS:我需要为每个items_id获得最低价格。
答案 0 :(得分:0)
这是由groupBy('item_sellers.items_id')
引起的。您需要添加select
子句。
return self::join('item_tags','tags.id', '=','item_tags.tags_id')
->join('items','items.id', '=','item_tags.items_id')
->join('item_images','item_tags.items_id','=','item_images.items_id')
->join('item_sellers','item_sellers.items_id','=','items.id')
->select(DB:raw('field1, field2, min(price) as price'))
->groupBy('item_sellers.items_id')
->paginate($paginate);
或者
return self::join('item_tags','tags.id', '=','item_tags.tags_id')
->join('items','items.id', '=','item_tags.items_id')
->join('item_images','item_tags.items_id','=','item_images.items_id')
->join('item_sellers','item_sellers.items_id','=','items.id')
->groupBy('item_sellers.items_id')
->orderBy('item_sellers.price','asc')
->paginate($paginate);
答案 1 :(得分:0)
return self::select("item_sellers.item_id",\DB::raw("min(item_sellers.price) as min_selll_price"))join('item_tags','tags.id', '=','item_tags.tags_id')
->join('items','items.id', '=','item_tags.items_id')
->join('item_images','item_tags.items_id','=','item_images.items_id')
->join('item_sellers','item_sellers.items_id','=','items.id')
->orderByRaw("min(item_sellers.price)",'ASC')
->groupBy('item_sellers.items_id')
->paginate($paginate);
答案 2 :(得分:0)
我认为你需要尝试这个:
return self::select("item_sellers.id","item.name","item_sellers.price")
->join('item_tags','tags.id', '=','item_tags.tags_id')
->join('items','items.id', '=','item_tags.items_id')
->join('item_images','item_tags.items_id','=','item_images.items_id')
->join('item_sellers','item_sellers.items_id','=','items.id')
->orderBy("item_sellers.price",'ASC')
->orderBy("item_sellers.id",'ASC')
->paginate($paginate);
希望对你有所帮助!