【问题标题】:INNER JOIN on Eloquent result sets in LaravelLaravel 中 Eloquent 结果集的 INNER JOIN
【发布时间】:2018-02-05 12:38:57
【问题描述】:

我想在用户的数据库结果集和朋友的结果集之间找到匹配项。 首先,我正在调用数据库以获取用户项目的 ID:

$user_simp_items = Item::select('simp_id')->where('user_id', $user_id)->get(); 

然后我遍历朋友并拨打电话以获取他们的物品ID:

$friend_simp_items = Item::select('simp_id')->where('user_id', $friend_id)->get(); 

为了找到匹配的 id,我想对结果集执行 INNER JOIN。我如何在 Laravel 中做到这一点?

我想做一些类似 inner_join($user_simp_items, $friend_simp_items) 的事情,然后只得到匹配项的结果集。

【问题讨论】:

  • laravel 可以使用哪个版本。
  • 如果这两个表相关,则使用Inner Join ClauseEloquent
  • 这是否也适用于已经完成的查询?因为我需要在不同的地方进行查询,所以我不能将它写在一个查询中,所以我必须加入结果集合
  • 您总是可以急切地加载“朋友”方法吗?这会以牺牲模型中的一些额外代码为代价来简化您的第一个查询?这样调用你的 $user_simp_items 总是会让你也可以访问朋友?

标签: sql laravel eloquent inner-join


【解决方案1】:

我使用了 toArray Eloquent 方法,然后做了一个 array_filter 来获取相交的元素。

【讨论】:

    猜你喜欢
    • 2014-11-17
    • 1970-01-01
    • 2019-08-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-09-03
    • 1970-01-01
    相关资源
    最近更新 更多