我想获得匹配的数据frpm两个表。 仅在' pn'处匹配相同的colume值显示数据。
我在下面编写代码。
$majis = St::join('sts.pn', '=', 'pn_list.pn')->get();
return view('contacts.index')->with('majis',$majis);
然后我收到了这个错误
Illuminate \ Database \ QueryException (42S02)
SQLSTATE[42S02]: Base table or view not found: 1146 Table 'sts.pn' doesn't exist (SQL: select * from `sts` inner join `sts`.`pn` on `=` = `pn_list`.`pn`)
这是我第一次使用内连接。什么是问题?
经过自我测试,我可以将每个标签显示为separete。
此处出现当前错误
SQLSTATE[HY000]: General error: 1267 Illegal mix of collations (utf8mb4_unicode_ci,IMPLICIT) and (utf8mb4_general_ci,IMPLICIT) for operation '=' (SQL: select * from `sts` inner join `pn_list` on `sts`.`pn` = `pn_list`.`pn`)
关于展示。如何在我那些时候写一些foreach @foreach($记录为$ record)和@foreach($ majis为$ maji)?
当前刀片文件
@foreach ($records as $record)
<tr>
<td>{{ $record->id }}</td>
<td>{{ $record->date }}</td>
<td>{{ $maji->pname }} {{ $maji->pdetail }}</td>
<td>{{ $record->memo }}</td>
</tr>
@endforeach
控制器
$majis = St::join('pn_list', 'sts.pn', '=', 'pn_list.pn')->get();
return view('contacts.index')->with('records',$records)->with('pn',$pn)->with('ename',$ename)->with('pns',$pns)->with('majis',$majis);
我的目标
主表(st)包含大部分数据。 我想补充一些额外的细节。 细节是子表(pns)有。
主表数据是&#34;记录histroy&#34;。 每条记录都有$ pn,表示产品编号。
子表有这些列$ Pn是产品编号, $ pname是产品名称,$ pdetail是产品详细信息。
例如主记录$ pn是425 子表格响应并显示No.425的产品名称和详细信息。
答案 0 :(得分:0)
join()
的第一个参数必须是表格:
$majis = St::join('pn_list', 'sts.pn', '=', 'pn_list.pn')->get();