У меня следующие 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
Кто-нибудь может рассказать, как получить желаемый результат
Попробуйте этот 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