dongshushi5579 2019-02-15 03:48
浏览 505
已采纳

使用Joins在laravel视图中显示Json数据

I'm trying to retrieve data from database to laravel blade view with join associate table.

in my case I have two tables called interesting_courses and courses. here some student can have many interesting courses. Therefore courses_id stored as json array in database as follows.

["1","11","15","16"] 

but I need to join the courses table to get the associate course name as follows.

["Hospitality","Business Management","Auto Mobile","Health Care"]

Below is my controller

$intresting_courses = DB::table('intresting_courses')
                            ->join('courses','courses.id','=','intresting_courses.courses_id')
                            ->where('intresting_courses.youth_id',$id)
                            ->first();

How can I join the tables.

  • 写回答

1条回答 默认 最新

  • dqyat62284 2019-02-15 04:28
    关注

    There is no way you can join it in query natively.

    The solution is to write two queries

    select * from intresting_courses where youth_id = ? limit 1
    
    select * from courses where id in (1, 2, 3, 4, 5, ...)
    

    that way you can get courses that student intresting.

    Here the laravel code for thoses queries.

    $intresting_courses = DB::table('intresting_courses')
                            ->where('intresting_courses.youth_id', $id)
                            ->first();
    
    $courses = DB::table('courses')
                 ->whereIn('id', json_decode($intresting_courses->courses_id))
                 ->get();
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

悬赏问题

  • ¥15 在若依框架下实现人脸识别
  • ¥15 网络科学导论,网络控制
  • ¥100 安卓tv程序连接SQLSERVER2008问题
  • ¥15 利用Sentinel-2和Landsat8做一个水库的长时序NDVI的对比,为什么Snetinel-2计算的结果最小值特别小,而Lansat8就很平均
  • ¥15 metadata提取的PDF元数据,如何转换为一个Excel
  • ¥15 关于arduino编程toCharArray()函数的使用
  • ¥100 vc++混合CEF采用CLR方式编译报错
  • ¥15 coze 的插件输入飞书多维表格 app_token 后一直显示错误,如何解决?
  • ¥15 vite+vue3+plyr播放本地public文件夹下视频无法加载
  • ¥15 c#逐行读取txt文本,但是每一行里面数据之间空格数量不同