gpt4 book ai didi

mysql - laravel5.2中如何从两个不同的表中获取记录

转载 作者:行者123 更新时间:2023-11-29 20:41:38 25 4
gpt4 key购买 nike

我有两个表“approval”和“renewal”,它们都有一个公共(public)列“applicant_id”。

当新的申请进来时,它会在表“approval”中存储一条数据记录以及已添加记录的“applicant_id”。

现在,当同一申请人申请续订时,会在“续订”表中创建引用“applicant_id”的行

注意:“approval”表中“applicant_id”可以有一条记录,但“renewal”表中同一“applicant_id”可以有多个记录。

现在,我的要求是:我需要从两个表中获取所有申请人的记录。

条件:如果表中都有“applicant_id”的数据,并且“renewal”表有多行相同的“applicant_id”,那么我也需要从“renewal”表中获取记录最新的。如果“续订”表中没有数据,但“approval”表中存在“applicant_id”的数据,则获取记录应获取“approval”表中存在的数据。基本上,如果“续签”表中有申请人的记录,则从那里获取最新的一条记录,如果仅“批准”表中存在记录,则获取该记录,但优先应该是从“续签”获取如果存在。

我正在尝试在 Laravel 5.2 中执行此操作。那么,有谁可以帮助我吗?

最佳答案

如果您使用 Eloquent,您将有 2 个模型:

续订.php

<?php
namespace App;
use Illuminate\Eloquent\Model;

class Renewal extends Model
{
protected $table = 'renewal';

public static function findMostRecentByApplicantId($applicantId)
{
$applicant = self::where('applicant_id', '=', $applicantId)
->orderBy('date_created', 'desc')
->first();

return $applicant;
}
}

批准.php

<?php
namespace App;
use Illuminate\Eloquent\Model;

class Approval extends Model
{
protected $table = 'approval';

public static function findByApplicantId($applicantId)
{
$applicant = self::where('applicant_id', '=', $applicantId)
->first();

return $applicant;
}
}

然后,在您想要获取审批/续订记录的代码中,使用以下代码:

if (! $record = Renewal::findMostRecentByApplicantId($applicantId)) {
$record = Approval::findByApplicantId($applicantId);
}

//$record will now either contain a valid record (approval or renewal)
//or will be NULL if no record exists for the specified $applicantId

关于mysql - laravel5.2中如何从两个不同的表中获取记录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38617283/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com