【发布时间】:2016-05-31 20:42:37
【问题描述】:
我有这样的查询:
$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。
例如。
领导表
id | leadcode | leadcat
1 | DL2016012| Delegates
2 | DL2016013| Delegates
3 | VL2016001| Vendors
4 | VL2016002| Vendors
交易
id | leadcode | DealAmount
1 | DL2016012| 123
2 | VL2016002| 1000
贵宾预订
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
谢谢
【问题讨论】:
-
如果是我,我会先解决 mysql 中的问题,然后找出如何将其逆向工程为 laravel-speak。为了帮助在 MySQL 中构建查询,请考虑遵循以下简单的两步操作: 1. 如果您还没有这样做,请提供适当的 DDL(和/或 sqlfiddle),以便我们可以更轻松地复制问题。 2. 如果您尚未这样做,请提供与步骤 1 中提供的信息相对应的所需结果集。
-
@Strawberry 好的,我正在努力。基本上我正在尝试获取由代表(用户)填写的最后一个 vipbooking 表格,这里 Lead 在交易和 Leadsheet 之间具有一对一的关系。我应该得到所有在 Deal 表中有 Deal 的代表填写的最后一个预订表格
-
@Strawberry 请查看我的示例表
-
请随意忽略我的建议 - 但就我个人而言,如果不解决这些步骤,我不准备采取进一步行动。
-
@Strawberry 我已经实现了你要求的第 2 步,你能解释一下第 1 步吗?我到底能做些什么来使问题易于理解
标签: php mysql join laravel-5.1