Laravel selectRaw 计数不起作用
Laravel selectRaw count where not working
我想获得 used_items < limit 的项目,但我也得到 used_items >= limit。
我厌倦了尝试使用 having 但也没有用。
public function getAllowedItems()
{
$items = Item::leftJoin('runners_items', 'runners_items.item_id', 'items.id')
->leftJoin('subrace_items', 'subrace_items.item_id', 'items.id')
->where('subrace_items.sub_race_id', $this->id)
->select('items.*', DB::raw('count(items.id)-1 as used_items'))
->where('items.limit', '>', 'used_items')
->orWhere('items.limit', 0)
->groupBy('items.id')->get();
dd($items);
}
此 select 查询无法正常工作
->select('items.*', DB::raw('count(items.id)-1 as used_items'))
尝试 this.it 会成功
public function getAllowedItems()
{
$user_items =Item::leftJoin('runners_items','runners_items.item_id','items.id')
->leftJoin('subrace_items', 'subrace_items.item_id', 'items.id')
->where('subrace_items.sub_race_id', $this->id)
->select('items.*', DB::raw('count(items.id)-1 as used_items'))
->groupBy('items.id')->get();
$user_item=$user_items[0]->user_items;
$items = Item::leftJoin('runners_items','runners_items.item_id','items.id')
->leftJoin('subrace_items', 'subrace_items.item_id', 'items.id')
->where('subrace_items.sub_race_id', $this->id)
->select('items.*'))->where('items.limit', '>', $user_items)
->orWhere('items.limit', 0)
->groupBy('items.id')->get();
dd($items);
}
我想获得 used_items < limit 的项目,但我也得到 used_items >= limit。 我厌倦了尝试使用 having 但也没有用。
public function getAllowedItems()
{
$items = Item::leftJoin('runners_items', 'runners_items.item_id', 'items.id')
->leftJoin('subrace_items', 'subrace_items.item_id', 'items.id')
->where('subrace_items.sub_race_id', $this->id)
->select('items.*', DB::raw('count(items.id)-1 as used_items'))
->where('items.limit', '>', 'used_items')
->orWhere('items.limit', 0)
->groupBy('items.id')->get();
dd($items);
}
此 select 查询无法正常工作
->select('items.*', DB::raw('count(items.id)-1 as used_items'))
尝试 this.it 会成功
public function getAllowedItems()
{
$user_items =Item::leftJoin('runners_items','runners_items.item_id','items.id')
->leftJoin('subrace_items', 'subrace_items.item_id', 'items.id')
->where('subrace_items.sub_race_id', $this->id)
->select('items.*', DB::raw('count(items.id)-1 as used_items'))
->groupBy('items.id')->get();
$user_item=$user_items[0]->user_items;
$items = Item::leftJoin('runners_items','runners_items.item_id','items.id')
->leftJoin('subrace_items', 'subrace_items.item_id', 'items.id')
->where('subrace_items.sub_race_id', $this->id)
->select('items.*'))->where('items.limit', '>', $user_items)
->orWhere('items.limit', 0)
->groupBy('items.id')->get();
dd($items);
}