mysql查询显示不同结果的计数

时间:2012-04-25 15:04:12

标签: php mysql

我有三个表,我想结合三个结果的输出并显示结果这里是我的表结构和查询

table_campaign - ID是自动增量

id         banner                views_left     packages

1          A1                       555                5
2          A1                       527                5
3          B1                       580                98
4          C1                       293                69

table_packages-Id是自动增量

id      name    special     
1       India       IND
2       Aus         Australia 
3       Pak         Pakistan

tablepage(table_campaign中的uri& banner相同)

 id     uri     views   
 1      A1       54
 2      B1       94
 3      C1       38

我想查看相似类型的所有横幅的总和 table_campaign并将检查tablepage,如果table_campaign中的总视图小于tablepage视图,则它将显示结果。

我尝试过三次独立查询。你可以指导如何编写,以便如果tablepage中的视图小于table_campaign的views_left列的组合视图,它将显示结果或它不会显示任何结果。我想显示几个满足这个标准的随机结果

$res23 = sql_query("SELECT sum(views_left) as num from table_campaign where banner!='{$client['uri']}'  " );
    $row23 = sql_fetch_array($res23);
    $stats['views_left'] = $row23['num'];


$res = sql_query("SELECT * from `table_packages` where special='{$client['location']}'");
$row = sql_fetch_array($res);
$packages=$row['id'];
{



$res2 = sql_query("SELECT * from `table_campaign` banner  where packages='{$packages}' order by  views_left   desc limit 4");{
while($row = sql_fetch_array($res2)) {
$banner1= $row['banner'];
$views_left = $row['views_left'];
$output4 .= '<table width="100%"><tr><td style="text-align:left;"><a href="'.$banner1.'">'.$banner1.'</a></td><td style="text-align:right;">'.$views_left.'  '.$stats['views_left'].'</td></tr></table>
';}

ass(array('title'=>t('abc'), 'content' => '<div class="toolbar">'.'<div style="border:0px solid #B2BCA7;margin-bottom:20px;"><div style="padding: 7px; position: relative;">'.$output4.'</div>'));
}

我只是想展示这个内容

table_campaign从所有行减去tablepage视图左侧的视图总和

我的tablepage uri列和table_campaign banner列相同。但是在tablepage中,uri列是唯一的,它只能出现一次,但是在table_campaign中,banner列可以多次出现,所以我想从table_campaign中添加所有行的views_left与tablepage views column进行比较。如果该特定uri的视图列大于views_left列的总和,它将显示我所显示的输出。我想我现在很清楚

1 个答案:

答案 0 :(得分:0)

以下是我的写作方式:

SELECT sum(table_campaign.views_left) - tablepage.views  FROM table_campaign,tablepage where tablepage.uri=table_campaign.banner group by table_campaign.banner;