[英]How to JOIN two tables and get the following result using PHP and mysqli?
[英]How to JOIN two tables and get the following result?
我的廣告系列表數據當前是這樣的
id campaign_name
1 florist
2 dentist
3 restaurants
4 realestate
還有我的第二張桌子(領先)
id campaign_id business_id
1 1 13456
2 1 34563
3 3 65987
4 2 45654
5 3 45632
我想按JOIN和GROUP BY列出所有廣告系列名稱,相應廣告系列的總潛在客戶。(codeigniter)
campaign_name No. of leads
florist 2
dentist 1
restaurants 2
realestate 0
您可以使用活動記錄/查詢構建器獲取所需數據,如下所示:
$this->db->select ( 'c.campaign_name,count(l.business_id) as no_of_leads' ,false)
->from ( 'campaign as c' )
->join ( 'leads l', 'c.id = l.campaign_id','left')
->group_by( 'c.campaign_name')
->get();
您應該使用左聯接
$this->db->select('campaign_name, COUNT(campaign_id) AS `No. of leads`');
$this->db->from('campaign');
$this->db->join('lead', 'campaign.id = lead.campaign_id', 'left');
$this->db->group_by( 'campaign.campaign_name' )
$result = $this->db->get();
其他人發布了查詢生成器代碼,因此這是您需要的原始SQL
SELECT
c.campaign_name,
COUNT(l.id) as total_leads
FROM
campaigns AS c
LEFT JOIN
leads AS l ON c.id = l.campain_id
GROUP BY c.id
左聯接很重要,因為您需要計算一下:
realestate 0
您在campaigns
中有ID為4的記錄,而在該廣告系列ID中的leads
沒有記錄。 我還將對PKEY進行計數和分組,您將獲得更好的索引編制和更高的可靠性(因為我們知道它們是唯一的)。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.