thinkphp5关联两张表的问题?

1、两张表 think_usercour 字段(user_id,course_id) think_course(course_id,course_name)

2、现usercour中有user_id为001的多条记录,假设$current_id='001',目的通过column('course_id')来找出对应的每条在course表中的完整记录。

3、自己的做法是取出course表中所有的记录,如出现在$db:name('usercour')->where('user_id',$current_id)->column('course_id')即为成功。

4、觉得效率很低,方法不太好。又换join写,没有成功,请大神指导一下呢

源码:
`
// 取出当前学生信息

        $stu =  $this->user->where('id',$id)->find();
        if(!$stu) {
            return $thid->error('非法操作!',url('Admin/Course/index'));
        }
        // 通过当前$stuid从表中查询所有包含的记录column(course_id)
        $course_id = $this->usercour->where('user_id',$id)->column('course_id');
        // 取出UserCourse中所有的记录
        $courses_list = $this->courses->select();
        $this->assign('stu',$stu);
        $this->assign('course_id',$course_id);
        $this->assign('courses_list',$courses_list);
        return $this->fetch();

{notempty name='courses_list'}

                {foreach $courses_list as $courses_list_item}
                    {if condition="in_array($courses_list_item['course_id'],$course_id)"}
                        <tr>
                            <td>{$courses_list_item['course_id']}</td>
                            <td>{$courses_list_item['course_name']}</td>
                        </tr>
                    {/if}
                {/foreach}

{/notempty}

`

阅读 4.7k
1 个回答
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题