2012-04-25 2 views
0

私は3つのテーブルを持って、私は3つの結果の出力を結合し、結果を表示したいここに私のテーブル構造があると、クエリ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 &バナーが同じである)

自動インクリメントであります
id  uri  views 
1  A1  54 
2  B1  94 
3  C1  38 

iは table_campaignに似たタイプのすべてのバナーの合計を確認したいとtablepageでチェックし、table_campaignの総視聴数がtablepageビュー未満であれば、それは結果を表示します。

私は3つの独立したクエリを試しました。テーブルページのビューがtable_campaignのviews_left列のビューを結合したビューより小さい場合、結果を表示するか、結果を表示しないように記述する方法を教えてください。私は単にビューのtable_campaign合計のこのコンテンツ

合計が

すべての行のマイナスtablepageビューから私のtablepageを左に示したかった、この基準

$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>')); 
} 

を満たすいくつかのうち、ランダムな結果をdispalyしたいですuri列とtable_campaignバナー列は同じですが、tableページ内のuri列はユニークで、一度しか表示されませんが、table_campaignバナー列には何回か来ることができますので、table_campaignからすべての行のviews_leftを追加し、 .if特定のuriのviewsカラムはmoreですviews_left列の合計よりも、出力が表示されます。私はそれを書くだろうかである私はここで、今

+0

あなたは私たちにあなたがしようとしたクエリを示すことによって開始することができ、おそらくこれまで –

+0

を試してみたものを投稿し、何してくださいそれらに間違っていますか? – eggyal

+0

更新したコードを参照してください – Steeve

答えて

0

非常に明確だと思う:

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

を確認してください。結合ステートメントはありませんか?その出力はありますが、私はそれを与えることなくすべての行をフィルタリングせずに追加すると思います。しかし、すべての行が追加された結果を1つのみ出力します – Steeve