如何在laravel ORM中执行下面的sql
。
select * from comments where page_id in (
select id from pages where pages.user_id = "kombuwa"
)
答案 0 :(得分:2)
你可以这样做:
$userId = 'kombuwa';
$comments = DB::table('comments')->whereIn('page_id', function($q) use ($userId) {
$q->select('id')->from('pages')->where('pages.user_id', $userId);
})->get();
(我将$userId
移动到变量,以防你想从输入中使用它,例如)
答案 1 :(得分:1)
上述答案是正确的,我认为如果使用关系模型概念会有所帮助。然后,您只需使用Laravel Eloquent ORM。例如,就您的情况而言,我认为这就像一页上有很多评论。因此,您只需添加关系(如果Laravel只需在所需的模型中添加函数),即可简化查询。
然后,您的查询将如下所示:
Pages::where('user_id','kombuwa')->comments
Laravel在这里所做的是找到用户ID为kombuwa的页面,然后找到该页面的所有注释。
有关Laravel关系check的更多详细信息,您将获得更多详细信息。
希望它会有所帮助,尽管迟到了实际问题。谢谢:)