大家好我是Laravel开发的新手,我想知道如何在两个表之间创建子查询,例如,我想执行这个查询:
SELECT * FROM `contracts`
WHERE `trainer_id` = '1' OR id IN (
SELECT `contract_id` FROM `trainees`
WHERE `user_id` = '1'
)
我测试它并且它可以正常工作,我想知道如何在Laravel雄辩中写出它
假设您的模型名为Contract,您可以使用以下语法来实现您想要的:
Contracts::where('trainer_id', '1')
->orWhere(function ($subquery) {
$subquery->whereIn('id', function ($query) {
$query->select('contract_id')
->from('trainees')
->where('user_id', '1');
})
})->get();