您能否帮助我将此SQL查询转换为Eloquent:
SELECT item.id, hired.item_id, hired.quantity - item.quantity as quanity
FROM items item
join hireds hired on hired.item_id = item.id
WHERE item.quantity > hired.quantity
order by item.id;发布于 2019-03-14 15:04:17
您可以使用whereHas()。
Item::with('hireds')->whereHas('hireds',function($q){
$q->whereRaw('items.quantity>hireds.quantity');
})->get();或
Item::join('hireds','items.id','=','hireds.item_id')
->selectRaw('items.quantity - hireds.quantity as quantity')
->whereRaw('items.quantity>hireds.quantity')->get();发布于 2019-03-14 07:37:30
它可能看起来像这样
DB::table('items')
->join('hireds', 'items.id', '=', 'hireds.item_id')
->select('item_id', 'quantity')
->where('items.quantity', '>', 'hireds.quantity')
->get()->sortBy('id');不是100%确定如何处理冲突的属性名称。
发布于 2019-03-14 12:47:00
您可以在laravel中使用raw创建查询:-
$query = DB::table('work_times as wt')
->join('work_time_details as wtd', 'wt.work_time_id','=','wtd.work_time_id')
->where('admin_id', $employee_id)
->whereBetween('work_time_date', [$start_date, $end_date])
->groupBy('wtd.project_id')
->orderBy('wtd.project_id')
->select(
DB::raw('sum(work_time_detail_hrs) as total_hour'),
'wtd.work_time_detail_id',
'wtd.project_id',
'wtd.work_type_id',
'work_types.work_type_name',
'p.project_name'
)
->get()
->toArray();为此,您需要使用DB类:
use Illuminate\Support\Facades\DB;https://stackoverflow.com/questions/55152420
复制相似问题