我有这行代码:
$user['preference'] = PdTpreference::join('pd_tprofessional_preference', 'pd_tprofessional_preference.fkpreference', '=', 'pd_tpreference.pkpreference AND pd_tprofessional_preference.fkprofessional =' . $tmp->pkprofessional, 'left')->get();但结果是这样的:
select * from `pd_tpreference` left join `pd_tprofessional_preference` on `pd_tprofessional_preference`.`fkpreference` = `pd_tpreference`.`pkpreference AND pd_tprofessional_preference`.`fkprofessional =12` where `pd_tpreference`.`deleted_at` is null当我期待它像这样出现的时候:
select * from `pd_tpreference` left join `pd_tprofessional_preference` on `pd_tprofessional_preference`.`fkpreference` = `pd_tpreference`.`pkpreference` AND `pd_tprofessional_preference`.`fkprofessional` = 12 where `pd_tpreference`.`deleted_at` is null我做错了什么?
发布于 2018-11-05 15:35:54
我用以下方法解决了我的问题:
$user['preference'] = PdTpreference::leftJoin('pd_tprofessional_preference', function($q) use ($tmp){ $q->on('pd_tprofessional_preference.fkpreference', '=', 'pd_tpreference.pkpreference')->where('pd_tprofessional_preference.fkprofessional', '=', $tmp->pkprofessional); })->get();https://stackoverflow.com/questions/53157221
复制相似问题