下面是我的 sql 语法,如何在 laravel 中实现它,在此先感谢。
SELECT * FROM `tr_policy_privacy` AS pri
LEFT JOIN
(SELECT * FROM tr_policy_full_create as cri WHERE cri.client_id=156 and cri.policy_type_id = 1)
AS hours
ON pri.id = hours.policy_template_edit
到目前为止,我已经尝试过了,但我正在尝试找到一种在左连接中使用函数的方法。
DB::table('tr_policy_privacy AS pri')
->select(['cri.policy_title', 'cri.policy_type', 'cri.policy_std', 'cri.policy_version', 'cri.approved_user_id', 'cri.effective_date', 'cri.last_revised_date', 'cri.id'])
->leftJoin(
DB::raw('(
SELECT * FROM tr_policy_full_create as pol WHERE pol.client_id=156 and pol.policy_type_id = 1
) AS cri'),'pri.id', '=', 'cri.policy_template_edit'
)
->get();
最佳答案
如果你的原始 sql 是正确的那么尝试直接在 laravel 中执行
$sql = "
SELECT * FROM `tr_policy_privacy` AS pri
LEFT JOIN
(SELECT * FROM tr_policy_full_create as cri WHERE cri.client_id=156 and cri.policy_type_id = 1)
AS hours
ON pri.id = hours.policy_template_edit";
$result = DB::select($sql);
在类的顶部使用 DB 命名空间
use DB;
关于php - 如何将以下 mysql 查询形成为 laravel 查询语法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45142042/