1

我必须在 mysql 中编写一个查询。以下是我的 ad_display 表

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

我有另一个表名作为广告,其中有 ad_id

ad_id | advertisename

campaignId 在此表中的名称为 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=?

我可以提供的其他信息是...在 ad_display 中有多个条目具有相同的 adv_id 相同的 camp_id 相同的 ad_typeId 与单击的列是真还是假。

我是 mysql 的新手..所以有人可以建议我用 mysql 查询吗?

4

1 回答 1

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 trueis1falseis 中0,所以对布尔值求和会计算它为真的次数。

于 2012-12-16T18:15:51.373 回答