2011-12-14 43 views
0

計數這裏是我的查詢:組由左連接表

$select d.*, 
count(a.id) as delivered 
from `dealerships` as d 
left join `assignments` as a on (a.id_dealership = d.id) 
group by d.id 
order by d.name asc 

現在這個工作,但它是重複計數線索。當我向羣組添加a.id_lead時,它會弄亂一切。在assignments表中有一列叫做id_lead,我希望count()(delivered)計算由id_lead分組的分配總數,以便它忽略多於1行且具有相同的id_lead

回答

1

這是你的意思嗎? :

select d.*, 
count(distinct a.id_lead) as delivered 
from `dealerships` as d 
left join `assignments` as a on (a.id_dealership = d.id) 
group by d.id 
order by d.name asc 

這是相同的查詢,除了代替a計數的記錄的總數,只會算上a.id_lead不同的非空值的數量。

(如果這你的意思,那麼請澄清。)

+0

完善。謝謝。 – scarhand 2011-12-14 01:27:17