首页 > 解决方案 > 使用 laravel 连接查询

问题描述

我真的对 laravel 上的加入感到困惑。

我有一张users桌子,一张students_subjects桌子,在students_subjects表格中我有一subject_id列和一user_id列,我试图通过表格获取用户列表,user_id在students_subjectsteachers_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)

标签: phpmysqllaravel

解决方案


您需要为两个表添加连接:

$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();

您可能需要对此进行调整才能准确获得所需的内容。


推荐阅读