【发布时间】:2022-01-12 06:44:15
【问题描述】:
我有一个 Laravel 5.8 项目,我需要加入 3 个表来显示一些结果。
基本上,我已将所有自定义 ID 存储在一个名为 baseinfos 的表中。
例如,这里有两个自定义 ID,我需要检索它们的 bas_value:
所以我尝试了这个:
$records = DB::table('members')
->where('mys_olp_id',4)
->join('students', 'members.mbr_usr_id', '=', 'students.std_mbr_id')
->join('baseinfos', 'students.std_degree_id', '=', 'baseinfos.bas_id')
->join('baseinfos', 'members.mbr_gender_id', '=', 'baseinfos.bas_id')
->select('baseinfos.bas_value', 'baseinfos.bas_value')
->get()->toArray();
但这是错误的,并向我显示错误:
SQLSTATE[42000]:语法错误或访问冲突:1066 不唯一
所以我需要这样说:
// as student_degree
->join('baseinfos', 'students.std_degree_id', '=', 'baseinfos.bas_id')
// as member_gender
->join('baseinfos', 'members.mbr_gender_id', '=', 'baseinfos.bas_id')
然后:
->select('student_degree', 'member_gender')
我该怎么做?
【问题讨论】:
标签: mysql laravel join laravel-5.8