【问题标题】:create a PHP multidimensional array in laravel 5.4 for the mysql join statement which which return multiple row for a user id在 laravel 5.4 中为 mysql join 语句创建一个 PHP 多维数组,该语句为用户 id 返回多行
【发布时间】:2017-06-01 07:55:48
【问题描述】:

我有一个工作表,其中有一个工作 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 查询生成器

【问题讨论】:

  • 加入将始终返回一条记录(但只有一个城市)或更多记录,就像您现在一样。您可以使用 eloqent 关系(这意味着 2 次选择“在后端”)、2 次手动选择或在选择中选择。
  • 我是 laravel 的新手。你能解释一下吗?

标签: php mysql laravel laravel-5.4 laravel-query-builder


【解决方案1】:

这就是 SQL 连接对一对多关系的工作方式:它会在匹配的每一行的顶部为您的作业表返回一个连接行。最简单的方法可能是单独搜索,在其中搜索所有 job_locations,其作业 ID 存在于作业表中,然后合并结果

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-09-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-10-18
    • 1970-01-01
    相关资源
    最近更新 更多