Laravel json join,尝试加入具有多个 id 的 JSON 列和具有位置 id 的位置表,查询生成器

Posted

技术标签:

【中文标题】Laravel json join,尝试加入具有多个 id 的 JSON 列和具有位置 id 的位置表,查询生成器【英文标题】:Laravel json join , Trying to Join JSON column having multiple ids with table of locations having location ids, query builder 【发布时间】:2020-08-12 18:17:58 【问题描述】:

我试图加入两个表,一个包含位置,另一个包含多个位置的 archive_data。所以我将存档数据中的位置存储为 json 像这样 ["1","2","3"]

我的查询:

                    DB::table('archive_data as a')
                    ->join('person as pe', 'pe.pe_id', '=', 'a.a_pe_id')
                    ->join('portfolio as p', 'p.p_id', '=', 'a.a_p_id')
                    ->join('tag as ta', 'ta.ta_id', '=', 'a.a_ta_id')
                    ->join('type as t', 't.t_id', '=', 'a.a_ty_id')
                    ->join('location as l', 'l.l_id', '=',"a.a_lc_id")
                    ->join('series as s', 's.s_id', '=', 'a.a_s_id')
                    ->join('bundle as b', 'b.b_id', '=', 'a.a_b_id');

请告诉我如何使用 laravel 查询生成器连接这两个表。先感谢您。

【问题讨论】:

【参考方案1】:

我不完全知道业务案例是什么,但最好再看看您的数据库结构,以便更轻松地检索数据。

如果您确实需要将存档数据存储在 json 中,我建议您查看类似的 *** 问题Laravel join two tables on Json Column

【讨论】:

逻辑是archive_data是一张表,它的一条记录可以有多个位置。为了获取位置详细信息,我想将其与位置表连接起来。但是发现很难加入 json 列。

以上是关于Laravel json join,尝试加入具有多个 id 的 JSON 列和具有位置 id 的位置表,查询生成器的主要内容,如果未能解决你的问题,请参考以下文章

SQL Join 一对多从满足条件的相同键值组中提取值

Laravel Join:试图获取非对象的属性

核心数据。加入 2 个具有多对多关系的表?

在 Laravel 上合并数组

如何在 laravel join 中解码

JSON Web Token 仅适用于具有 Eloquent 模型的 Laravel