2013-07-09 181 views
0

我們有兩個MySQL表來跟蹤我們每天的橫幅統計數據。一張表格用於觀看,另一張用於點擊。這兩個表設置這樣的:將兩個表合併爲一個

次數:

banner_id (int 11) 
click_date (date) 
click_total (int 11) 

瀏覽:

banner_id (int 11) 
view_date (date) 
view_total (int 11) 

我需要每個月獲得的統計信息;爲此我得到了這個查詢(對於視圖):

SELECT 
    bv.`view_date`, 
    SUM(bv.`view_total`) AS view_total 
FROM 
    tarlo.`tarlo_banners_views` bv 
WHERE bv.`banner_id` = 469 
GROUP BY bv.`banner_id` 
ORDER BY bv.`view_date` ASC ; 

而對於點擊我有一個查詢看起來幾乎相同。在PHP中,我們將日期的結果合併到一個數組中。現在我們想知道是否可以通過一個MySQL查詢(而不是2)來結合結果。

因此,我們需要的結果是這樣的:

Date:  Clicks: Views: 
2013-07-07 556  156833 
2013-07-08 726  175683 
2013-07-09 356  130588 

,而不是2分的結果集這樣的:

Date:  Clicks: 
2013-07-07 556 
2013-07-08 726 
2013-07-09 356 

Date:  Views: 
2013-07-07 156833 
2013-07-08 175683 
2013-07-09 130588 

我們怎樣才能做到這一點?

回答

1

喜歡的東西:

SELECT 
    bv.`view_date`, 
    SUM(bv.`view_total`) AS view_total, 
    SUM(bc.`click_total`) AS click_total, 
FROM 
    tarlo.`tarlo_banners_views` bv, tarlo.`tarlo_banners_clicks` bc 
WHERE bv.`banner_id` = 469 
AND bc.`banner_id` = bv.`banner_id` 
AND bc.`click_date` = bv.`view_date` 
GROUP BY bv.`banner_id` 
ORDER BY bv.`view_date` ASC ; 
+0

優秀,可以完美運行! –

0

您需要JOIN兩個表所示:

SELECT 
    bv.`view_date`, 
    SUM(bv.`view_total_views`) AS view_total_views, 
    SUM(bc.`view_total_clicks`) AS view_total_click 
FROM 
    tarlo.`tarlo_banners_views` bv 
JOIN 
    tarlo.`tarlo_banners_clicks` bc 
WHERE bv.`banner_id` = 469 
GROUP BY bv.`banner_id` 
ORDER BY bv.`view_date` ASC ;