gpt4 book ai didi

php - 连接五个表时如何避免重复

转载 作者:行者123 更新时间:2023-11-29 22:33:06 24 4
gpt4 key购买 nike

我有五个表,它们是 jobs、keyword、keyword_master、location_master、company_master 这些是我的表,现在的问题是我想根据 jobs.id 连接五个表,我编写了连接所有五个表的查询,但是在这里,我面临的问题是,单个 job.id 的问题是什么,它们在 keywor 和 keywords_master 中不止一种技能,而加入我的 job.id 时,根据关键字和 keywords_master 中存储的技能数量变得重复,其余表也相同,如何解决这个问题。

职位

id location_id company_id...等

关键字

id job_id keywords_id

keyword_master

ID名称

comapany_master

ID名称

location_master

城市ID

我想要输出为

jobs.idkeyword.job_idkeyword.keyword_idkeyword_master.namelocation_master.citycompany_master.name

|1 1 1 php xyz xxx| 1 2 js
| 1 3 java
| 1 4 js
代替1 1 1 PHP xyz xxx1 1 2 js xyz xxx
1 1 3 java xyz xxx1 1 4 js xyz xxx

这是我的查询

    $this->db->select('jobs.*,jobs.id as newjobid,keyword.*,keyword_master.name as new_name,keyword_master.id as new_id,company_master.*,company_master.id as cm_id,location_master.*');
$this->db->from('jobs');
$this->db->join('keyword','keyword.job_id=jobs.id','left');
$this->db->join('keyword_master','keyword_master.id=keyword.keyword_id','left');
$this->db->join('location_master','location_master.id=jobs.location','left');
$this->db->join('comppany_master','company_master.id=jobs.company_id','left');

最佳答案

我已更新您的查询,您的查询中有拼写错误

$this->db->distinct();
$this->db->select('j.*,l.city as loc_city,l.id as loc_id,km.name as key_name,km.id as key_id,c.id as comp_id,c.name as comp_name',false);
$this->db->from('jobs j');
$this->db->join('keyword k','k.job_id=j.id','left');
$this->db->join('keyword_master km','km.id = k.keyword_id','left');
$this->db->join('location_master l','l.id = j.location_id','left');
$this->db->join('comppany_master c','c.id = j.company_id','left');

关于php - 连接五个表时如何避免重复,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29666405/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com