【问题标题】:How to get the last updated row in a table inside a Join query (Laravel 5)如何在联接查询中获取表中最后更新的行(Laravel 5)
【发布时间】: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


【解决方案1】:
->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)"));

【讨论】:

    猜你喜欢
    • 2021-07-18
    • 1970-01-01
    • 1970-01-01
    • 2016-08-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-11-26
    相关资源
    最近更新 更多