我有两个表“ approval”和“ renewal”,它们都有一个共同的列“ applicant_id”。
当出现新的应用程序时,它将数据记录与为其添加了记录的“ applicant_id”一起存储在表“ approval”中。
现在,当同一位申请人申请了续订时,该行将在表“ renewal”中创建,并引用“ applicant_id”
注意:“ applicant_id”表中的“ approval”表中可以有一条记录,但“ renewal”表中的“ applicant_id”中可以有多个记录。
现在,我的要求是:我需要从所有表中获取所有申请人的记录。
条件:如果表和“续订”表中都存在“ applicant_id”的数据,并且同一“ applicant_id”具有多个行,那么我仅需要从“续订”表中获取记录,而该记录也是最新的。如果“更新”表中没有数据,但“ applicant_id”的“批准”表中存在数据,则获取记录应获取“批准”表中存在的数据。基本上,如果“更新”表中有申请人的记录,则从那里获取最新记录;如果“批准”表中仅存在记录,则获取该记录,但如果存在。
我试图在laravel 5.2中做到这一点。那么,有没有人可以帮助我呢?
经过几次尝试,我得到了一种使用raw的方法:
SELECT applicant_id, applicant_name, applicant_email, applicant_phone, renewed, updated_at
FROM (
SELECT renewal_informations.applicant_id, renewal_informations.applicant_name, renewal_informations.applicant_email, renewal_informations.applicant_phone, renewal_informations.renewed, renewal_informations.updated_at
FROM renewal_informations
UNION ALL
SELECT approval_informations.applicant_id, approval_informations.applicant_name, approval_informations.applicant_email, approval_informations.applicant_phone, approval_informations.renewed, approval_informations.updated_at
FROM approval_informations
) result
GROUP BY applicant_id
ORDER BY applicant_id ASC, updated_at DESC;
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句