我有这样的查询:
$deals=DB::table('leadsheet')
->join('Deal', 'leadsheet.leadcode', '=', 'Deal.leadcode')
->join('vipbooking', function ($join) {
$join->on('leadsheet.leadcode', '=', 'vipbooking.leadcode')
->where('id', DB::raw("(select max(`id`) from vipbooking)"));
})
->where('leadsheet.leadcat', '=','Delegates')
->get();
我收到以下错误:
Missing argument 3 for Illuminate\Database\Query\JoinClause::where(),
它指向以下行:
->where('id', DB::raw("(select max(`id`) from vipbooking)"));
我想从vipbooking表单中获取最大ID。
例如。
Leadsheet
id | leadcode | leadcat
1 | DL2016012| Delegates
2 | DL2016013| Delegates
3 | VL2016001| Vendors
4 | VL2016002| Vendors
优惠
id | leadcode | DealAmount
1 | DL2016012| 123
2 | VL2016002| 1000
vipbooking
id | leadcode | date | bookingtxt
1 | DL2016012| 20-04-2016| xxx
2 | DL2016012| 20-04-2016| dddd
3 | VL2016012| 21-04-2016| ppp
因此,从上面的示例我想获得代表最近填写的预订表格详细信息。
所以我的Out put应该有:
2 123 | Delegates| DL2016012| 20-04-2016| dddd
谢谢
答案 0 :(得分:0)
->where('id', DB::raw("(select max(`id`) from vipbooking)"));
错误是要求您提供第三个参数,因此请将该行更改为:
->where('vipbooking.id','=', DB::raw("(select max(`id`) from vipbooking)"));
或者你可以使用另一个' on'更多:
$join->on('leadsheet.leadcode', '=', 'vipbooking.leadcode')
->on('vipbooking.id', '=', DB::raw("(select max(`id`) from vipbooking)"));