我有一个工作表,其中有一个工作 ID 和一些其他内容
职位
id job_title job_profile
1名软件工程师java开发人员
另一个表可以是工作地点表
工作地点
id城市job_id
1 德里 1
2 孟买 1
这里 job_location.job_id 是 jobs.id
现在我想找一份包含所有可能城市的工作。
我试过了
$job_ids = DB::table('jobs');
$job_ids->where ('jobs.id', $id);
$job_ids->join('job_location', 'jobs.id', '=', 'job_location.job_id');
$job_ids = $job_ids->get();
现在它给了我两个工作对象,每个城市一个。 输出:
[{"id":1,"job_title":"Job Title Software Developer","job_profile":"Associate Software Developer","city":"Delhi"},{"id":1,"job_title":"Job Title Software Developer","job_profile":"Associate Software Developer","city":"Mumbai"}]
预期结果:
[{"id":1,"job_title":"Job Title Software Developer","job_profile":"Associate Software Developer","city":{"Delhi","Mumbai"}}]
如有任何帮助,我们将不胜感激。谢谢
注意:我正在使用 laravel 查询生成器
最佳答案
这就是 SQL 连接在一对多关系中的工作方式:它将在与之匹配的每一行的顶部返回作业表的连接行。最简单的方法可能是进行单独的搜索,搜索具有作业表中存在的作业 ID 的所有 job_locations,然后合并结果
关于php - 在 laravel 5.4 中为 mysql join 语句创建一个 PHP 多维数组,该数组为用户 id 返回多行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44301723/