Laravel:查询仅获取一个相关ID

用户名

我试图获取与特定列表相关的所有ID,但我的查询仅返回表中的第一个相关ID,而不返回其他ID。

桌子

List      | id | person_id | name      | description
          | 1  | 10        | Test List | null

List_Ref  | id | list_id   | data_id 
          | 1  | 1         | 100
          | 2  | 1         | 101

询问

$lists = DB::table('List')
   ->leftJoin('List_Ref', 'List_Ref.list.id', '=', 'List.id')
   ->select('List.id', 'List.name', 'List_Ref.data_id')
   ->where('person_id', Auth::user()->person_id)
   ->groupBy('List.id')
   ->orderBy('List.id')
   ->get();

结果(Laravel模版和转储)

#items: array:1 [
  0 => {
    "id"      : 1
    "name"    : "Test List"
    "data_id" " 100
  }
]

我想产生如下结果

#items: array:1 [
  0 => {
    "id"      : 1
    "name"    : "Test List"
    "data_id" => {
      "id" : 100
      "id" : 101
    }
  }
]
索米亚·拉斯托吉(Saumya Rastogi)

如果要获取可用的分组项目,请在构建查询时不要使用分组依据。

这样做:

$lists = DB::table('List')
   ->leftJoin('List_Ref', 'List_Ref.list.id', '=', 'List.id')
   ->select('List.id', 'List.name', 'List_Ref.data_id')
   ->where('person_id', Auth::user()->person_id)
   ->get();

$lists->groupBy('List.id')->orderBy('List.id');

使用laravel集合的groupBy和orderBy方法获取分组的项目。希望对您有帮助!

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

仅使用一个SQL查询获取页面结果

在 Laravel 中获取具有另一个 Eloquent 查询 ID 的所有项目

Laravel:从查询生成器获取最后一个插入ID

从关系中获取唯一的(仅一个)最新相关对象

laravel表仅与另一个表上的两个元素相关

MySQL:如何仅使用一个查询获取表中不存在的ID的百分比

Django多对多:在一个相关查询集中获取元素但排除其他相关查询集中的元素的最佳方法?

查询以从一个查询中的另一个ID获取结果

SQL查询发现,不与其它ID相关联的一个id

如何获取仅与指定用户相关的第一个线程?

使用一个独立的列Laravel获取查询

Laravel模型验证:如何仅允许一个相关模型

Laravel条件子查询以及相关模型的最后一个条目

在一个查询中获取总行数和最后一个ID

Laravel 的背包获取最后一个 ID

BigQuery仅执行一个查询

从另一个相关表中获取每个条目的最大 ID

Laravel Eloquent-获取相关模型的最后一个插入

如何从与数据透视表相关的行中获取一个Builder对象-Laravel

Django获取相关对象在查询集中维护父级的顺序并获取下一个对象

在查询集上执行“获取”是评估整个查询集还是仅评估查询集的一个元素?

如何仅获取第一个结果mysql php-foreach中的多个查询

InfluxDB-仅获取查询中的最后一个值

如何仅通过一个查询从mysql数据库中获取多个数据?

PHP-PDO-如何仅通过一个查询获取多行?

如何仅使用一个查询从多个表中获取数据?

从URL仅获取一个参数

Mysql子查询仅返回一个结果,即使列表中有多个ID

Laravel许多一对多(在同一个用户表/型号):查询范围来包括指定用户相关