包含计数的4路SQL查询

时间:2013-11-11 13:35:33

标签: php mysql sql

我有4张桌子:

  
      
  1. ad(id,...)
  2.   
  3. 网站(id,title,URL,...)
  4.   
  5. space(id,website_id,...)
  6.   
  7. ad_space_counter(id,ad_id,website_id,space_id,impression_counter,click_counter)
  8.   

网站可能会分配2或3个空格。

现在我希望实现的是制作一个SELECT并获得以下内容:

  
      
  1. ad_id
  2.   
  3. website_id
  4.   
  5. 网址(来自网站表)
  6.   
  7. 标题(来自网站表)
  8.   
  9. impression_counter(但是分配给该特定网站的所有空间的总数_id)
  10.   
  11. click_counter(但分配给该特定website_id的所有空格的总计)
  12.   

因此,如果我们有ad_id = 1且website_id = 1但有3个空格且website_id = 1,则ad_space_counter将生成3个条目,每个条目都有自己的特定展示和点击计数器。这个SELECT必须得到所有这些的总和并在一个结果中显示它。

感谢。

1 个答案:

答案 0 :(得分:0)

请尝试使用以下内容,请注意列列表中未包含的列“ad_id”。因此,下面的查询可以被网站视为统计数据。

select 
       a.website_id,
       website.url,
       website.title,
       sum(a.impression_counter) as impression_counter,
       sum(a.click_counter) as click_counter
from ad_space_counter a, 
     ad,
     website
     space
where ad.id = a.ad_id
   and website.id = a.website_id
   and space.id = a.space_id
group by 
       a.website_id,
       website.url,
       website.title