[英]How to get the last updated row in a table inside a Join query (Laravel 5)
我有这样的查询:
$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
因此,从上面的示例中,我试图获取代表最近填写的预订表格详细信息。
所以我的输出应该有:
2 123 | Delegates| DL2016012| 20-04-2016| dddd
谢谢
->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)"));
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.