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



我有五个表,它们是jobs、keyword、keyword_master、location_master、company_master这些是我的表现在的问题是我想基于jobs连接五个表。我写了连接所有五个表的查询,但在这里我面临的问题是单个作业的问题是什么,在加入我的工作时,根据关键字和关键字中存储的技能数量,id会变得重复。对于剩余的表,如何解决这个问题也是一样的。

工作

id location_id company_id。。。etc

关键字

id job_id关键字_id

关键字_主

id名称

公司_主管

id名称

location_master

id城市

我希望输出为

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

最新更新