我真的对laravel上的加入感到困惑。
我有一个users
表和一个students_subjects
表,在students_subjects
表中有一个subject_id
列和一个user_id
列, m尝试通过user_id
表中的teachers_subjects
获取用户列表,并在students_subjects上具有相同的subject_id
列。
我已经尝试过:
$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)
答案 0 :(得分:1)
您需要为两个表添加一个联接:
$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();
您可能需要对此进行调整才能获得所需的确切信息。
答案 1 :(得分:0)
如果您不知道使用laravel雄辩的查询,那么您可以使用laravel执行原始查询
$cards = DB::select("SELECT * FROM TABLE");
这样,您可以轻松运行查询而无需任何其他RND