2012-12-16 31 views
1

我必須寫在mysql中。繼一個查詢是我ad_display表在Mysql中應該如何查詢creting邏輯視圖?

ad_displaysId | adv_id | campaign_id | adtypeId | clicked(boolean) 

我必須爲宣傳其具有另一個表名ad_id

ad_id | advertisename 

cammpaignId在這個表名camp_table

campaign_id | camp_name 

adtypeId在這個表名作爲adtype,詳情

adtypeId | adtype_name 

現在我想的是創建一個視圖這給我造成這樣從我的ad_display表

advertise_name | camp_name | adtype_name | count_of_clicked | count_of_row 

這裏

count_of_clicked = count of row where adv_id=? campaignId=? adtypeId=? clicked=true 
count_of_row= count of row where adv_id=? campaignId=? adtypeId=? 

附加inforamtion我可以給是......那在ad_display中有多個條目具有相同的adv_id相同的camp_id相同的ad_typeId,點擊的列表是true或false。

我總是新的mysql..so任何人都可以建議我查詢使用mysql做到這一點?

回答

2

試試這個:

create view my_ad_view as 
select 
    advertise_name, 
    camp_name, 
    adtype_name, 
    sum(clicked) as count_of_clicked, 
    count(*) as count_of_row 
from ad_display ad 
left join advertise a on a.ad_id = ad.ad_displaysId 
left join camp_table ct on ct.campaign_id = ad.campaign_id 
left join adtype at on at.adtypeId = ad.adtypeId 
group by advertise_name, camp_name, adtype_name 

sum(clicked)漂亮的「帽子戲法」,這工作,因爲在MySQL true1false0,使總結的布爾數有多少次是真的。

+0

thnx波希米亞人..工作第一次嘗試... thanx很多 –