我正在尝试根据公共列值加入 Laravel 项目中的表。我有两张桌子:
单个报告包含一个名为“report_data_id在某个时刻更新”的字段,并包含该表中的报告数据 ID,但是,无论我使用该id列还是完全独立的列,或者不同类型的联接,我都会收到以下错误:
SQLSTATE[23000]:违反完整性约束:1052 where 子句中的列“id”不明确
我不确定我的代码中做错了什么?
$report = DB::table('reports')
->where('id', $id)
->where('user_id', Auth::id())
->join('report_data', 'report_data.id', '=', 'reports.report_data_id')
->first();
Run Code Online (Sandbox Code Playgroud)
我需要首先选择 ID 与我的请求中请求的 ID 匹配的报告,以及用户 ID 与登录用户匹配的报告,这一点很重要,以免得到不正确的报告。
然后,我需要从report_data包含 的表中获取报告数据id,默认列与我的报告表中的列id相匹配。report_data_id
我尝试在report_data表中添加单独的列,但这不起作用。
我在这里做错了什么?
尝试以下代码。使用别名是因为您的查询未指定列使用哪个别名id。
$report = DB::table('reports')
->where('reports.id', $id)
->where('reports.user_id', Auth::id())
->join('report_data', 'report_data.id', '=', 'reports.report_data_id')
->first();
Run Code Online (Sandbox Code Playgroud)