我有五个表,他们是工作,关键字,keyword_master,location_master,company_master这些是我的表现在是什么问题是我想基于jobs.id加入五个表我写了加入所有五个表的查询但是在这里,我面临的问题是什么问题是单个job.id他们是keywor和keyword_master不止一个技能,而加入我的job.id成为重复基于存储在关键字和keyword_master相同的剩余表中的技能也如何解决这个问题。
id location_id company_id ... etc
id job_id keyword_id
id name
id name
id city
我希望输出为
| 1 1 1 php xyz xxx
| 1 2 js
| 1 3 java
| 1 4 js
代替
1 1 1 php xyz xxx
1 1 2 js xyz xxx
1 1 3 java xyz xxx
1 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');
答案 0 :(得分:0)
我已在您的查询中更新了您的拼写错误
$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');