无法合并表以获得所需的结果

时间:2018-07-02 11:08:03

标签: php mysql codeigniter join

我有以下3张桌子

suppliers
id  job_title
1       S1
2       S2
3       S3
6       S6

supplier_job
id   supplier_id   job_id
1       1            1
2       2            2
3       3            1
4       6            2

job_report
Id    report  supplier_id  job_id
1       R1      1            1
2       R2      1            1
3       R3      1            1
4       R4      3            1
5       R5      3            1
6       R6      6            2

以下代码为我提供了针对特定工作的供应商列表

$this->db->select('*');
$this->db->where('job_id',$job_id);
$this->db->from('supplier_job');
$this->db->join('suppliers','supplier_job.supplier_id=suppliers.id','Right');
$query=$this->db->get();
$r = $query->result();

但是,我希望与该清单一起获得每个供应商针对该工作提交的报告总数,因此根据该结果,结果应该类似于

  

如果job_id = 1,那么

job_id supplier_id   total_report
1           1           3
1           3           2   

谁能告诉我如何获得期望的结果

1 个答案:

答案 0 :(得分:0)

尝试此mysql查询。

SELECT 
    p.job_id,
    p.supplier_id,
    Count( p.report ) AS total_report
FROM 
    job_report p 
WHERE 
    p.job_id = 1
GROUP BY 
    p.job_id,
    p.supplier_id

输出:

Job_id  supplier_id  total_report
 1         1           3
 1         3           2