加入五个表时如何避免重复

时间:2015-04-16 05:56:41

标签: php mysql codeigniter

我有五个表,他们是工作,关键字,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

keyword_master

id name

comapany_master

id name

location_master

id city

我希望输出为

jobs.id keyword.job_id keyword.keyword_id keyword_master.name location_master.city company_master.name

| 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');

1 个答案:

答案 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');