如何做 Laravel ORM 子查询
How to do Laravel ORM subquery
如何在 laravel ORM 中执行下面的 sql
。
select * from comments where page_id in (
select id from pages where pages.user_id = "kombuwa"
)
你可以这样做:
$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
移动到变量,以防万一您想从输入中使用它)
认为上面的答案是正确的,我认为如果你使用关系模型概念会有所帮助。然后,您可以简单地使用 Laravel Eloquent ORM。例如,在你的情况下,我认为它就像一页有很多评论。因此,您可以只添加关系(在 Laravel 的情况下,只需在所需模型中添加函数),这会使您的查询更容易。
那么,您的查询将如下所示:
Pages::where('user_id','kombuwa')->comments
这里Laravel的作用是找到用户id为kombuwa的页面,然后找到该页面的所有评论。
有关 Laravel 关系 check 的更多详细信息 link,您将获得更多详细信息。
希望对您有所帮助,尽管对实际问题来说已经晚了。谢谢 :)
如何在 laravel ORM 中执行下面的 sql
。
select * from comments where page_id in (
select id from pages where pages.user_id = "kombuwa"
)
你可以这样做:
$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
移动到变量,以防万一您想从输入中使用它)
认为上面的答案是正确的,我认为如果你使用关系模型概念会有所帮助。然后,您可以简单地使用 Laravel Eloquent ORM。例如,在你的情况下,我认为它就像一页有很多评论。因此,您可以只添加关系(在 Laravel 的情况下,只需在所需模型中添加函数),这会使您的查询更容易。
那么,您的查询将如下所示:
Pages::where('user_id','kombuwa')->comments
这里Laravel的作用是找到用户id为kombuwa的页面,然后找到该页面的所有评论。
有关 Laravel 关系 check 的更多详细信息 link,您将获得更多详细信息。
希望对您有所帮助,尽管对实际问题来说已经晚了。谢谢 :)