【发布时间】:2022-01-20 13:30:36
【问题描述】:
我正在使用 laravel 8。我有 2 个相关的数据表。一个是“客户”,另一个是“工作”。一个客户可以有许多工作的历史。我正在尝试使用 eloquent 构建一个查询,该查询将在一个集合中包含客户及其所有工作。我已经尝试了一些东西,并且
我最常遇到的错误
SQLSTATE[21000]:基数违规:1242 子查询返回超过 1 行(SQL:选择
customers.*,(选择typefromjobswherejobs.typein (HVAC, Select )) 作为jobType来自customers)
现在我很确定它会这样做,因为客户有不止一项工作,但我不知道如何做到这一点,所以这不是问题。这实际上是我想要完成的。
我尝试了一些方法:
$jobs = Job::where('class','LIKE','%'.$request->class.'%')
->whereBetween('date_booked',[$request->start_date, $request->end_date])
->join('customers', 'customers.location_number', '=', 'jobs.location_number')
->join('notes', 'notes.location_number', '=', 'jobs.location_number')
->where('jobs.type',$type)
->take('30')->get();
我也试过(作为一个非常简单的测试:
$jobs = Customer::addSelect(['jobType' => Job::select('type')
->whereIn('jobs.type',$type)])
->get();
但 id 似乎不起作用。
【问题讨论】:
-
我认为这个日期
['01-01-1970'应该显示为['1970-01-01' -
另外它不像你在这段代码中创建子查询,你确定错误来自这段代码吗
-
是的,我确定。这个想法保持不变。具有来自相关数据表的子集合的集合。
标签: php laravel eloquent laravel-query-builder