我真的对 laravel 上的连接感到困惑。
我有一个users
表和一个students_subjects
表,在students_subjects
表中我有一个subject_id
列和 user_id 列,我尝试通过 teachers_subjects
表中的 user_id
获取具有相同 subject_id 的用户列表
Students_subjects 列。
我已经尝试过:
$user_id = Auth::user()->id;
$results = DB::table('users')
->join('students_subjects', 'students_subjects.subject_id', '=', 'teachers_subjects.subject_id')
->where('students_subjects.user_id', $user_id)
->get();
但是我遇到了一些错误...如果有人可以向我展示应该如何完成它,这样我就可以了解如何在 laravel 中进行连接工作,那就太好了。
结构:
users table :
- id
- name
- last name
students_subjects :
- subject_id
- user_id (users->id)
teachers_subjects :
- subject_id
- teacher_id (users->id)
最佳答案
您需要为两个表添加联接:
$user_id = Auth::user()->id;
$results = DB::table('users')
->join('students_subjects', 'users.id', '=', 'students_subjects.user_id')
->join('teachers_subjects', 'students_subjects.subject_id', '=', 'teachers_subjects.subject_id')
->where('students_subjects.user_id', $user_id)
->get();
您可能需要对此进行调整才能准确获得您正在寻找的内容。
关于php - 使用 Laravel 连接查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51505100/