duangeli1334 2018-07-24 10:11
浏览 83
已采纳

使用laravel连接查询

I'm really getting confused with the join on laravel.

I got a users table and got a students_subjects table, in the students_subjects table I got a subject_id column and a user_id column, I'm trying to get the users list by the user_id at the teachers_subjects table with the same subject_id column at the students_subjects.

I've tried :

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

but I got some errors... would be great if someone can show me the way it should be done so I can understand how to do the joins work at laravel.

structures:

users table :
- id
- name
- last name

students_subjects :
- subject_id
- user_id (users->id)

teachers_subjects :
- subject_id
- teacher_id (users->id)
  • 写回答

2条回答 默认 最新

  • doujiu8918 2018-07-24 10:18
    关注

    You need to add a join for both tables:

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

    You may have to tweak this to get exactly what you're looking for.

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)
编辑
预览

报告相同问题?

手机看
程序员都在用的中文IT技术交流社区

程序员都在用的中文IT技术交流社区

专业的中文 IT 技术社区,与千万技术人共成长

专业的中文 IT 技术社区,与千万技术人共成长

关注【CSDN】视频号,行业资讯、技术分享精彩不断,直播好礼送不停!

关注【CSDN】视频号,行业资讯、技术分享精彩不断,直播好礼送不停!

客服 返回
顶部