簡體   English   中英

比較基於lastmodified列的兩個表?

[英]Compare two tables based on lastmodified column?

我正在使用此查詢按月和年檢查票組

SELECT 
    MONTH((lastmodified)) as month, 
    YEAR((lastmodified)) as year,
    COUNT(num_of_tickets) as tickets
    FROM visitors_2013
    GROUP BY 
    MONTH((lastmodified)), 
    YEAR((lastmodified))

這返回像

Array
(
    [0] => Array
        (
            [month] => 1
            [year] => 2013
            [tickets] => 1521
        )

    [1] => Array
        (
            [month] => 2
            [year] => 2013
            [tickets] => 513
        )

    [2] => Array
        (
            [month] => 12
            [year] => 2012
            [tickets] => 146
        )

)

我把它放在php函數中,這樣我就可以每年獲取數據(數據每年存儲在單獨的表中)。 我在2013年和2014年兩次調用函數get_ticket_per_year($ year)

Array
(
    [0] => Array
        (
            [month] => 1
            [year] => 2013
            [tickets] => 1521
        )

    [1] => Array
        (
            [month] => 2
            [year] => 2013
            [tickets] => 513
        )

    [2] => Array
        (
            [month] => 12
            [year] => 2012
            [tickets] => 146
        )

)

Array
(
    [0] => Array
        (
            [month] => 12
            [year] => 2013
            [tickets] => 26
        )

)

我喜歡通過將每年每月的數據繪制在圖表中來比較另一張表(visitors_2014)中的年月票總數。 為此,我正在使用morris js庫。 這是我需要的結果

data: [ {
            m: 'dec',
            2012: 146,
            2013: 26
        }, {
            m: 'jan',
            2013: 1521,
            2014: 
        }],

所以我怎么能結合mysql查詢,所以它是一個查詢

SELECT 
prevTbl.MONTH((lastmodified)) as prev_month, 
prevTbl.YEAR((lastmodified)) as prev_year,
prevTbl.COUNT(num_of_tickets) as prev_tickets,
currTbl.MONTH((lastmodified)) as curr_month, 
currTbl.YEAR((lastmodified)) as curr_year,
currTbl.COUNT(num_of_tickets) as curr_tickets
FROM visitors_2013 prevTbl, visitors_2014 currTbl 
GROUP BY 
MONTH((lastmodified)), 
YEAR((lastmodified))

加入您的查詢:

SELECT * FROM ( [your first query here] ) AS data1
LEFT JOIN ( [your second query here] ) AS data2
ON [your relation between the two query here]

您的情況(未經測試):

SELECT * FROM (

    SELECT
        `num_of_tickets` AS `tickets2013`,
        MONTH(`lastmodified`) AS `month`
    FROM `visitors_2013`
    GROUP BY 
        MONTH(`lastmodified`)

) AS `data2013`
LEFT JOIN (

    SELECT
        `num_of_tickets` AS `tickets2014`,
        MONTH(`lastmodified`) AS `month`
    FROM `visitors_2014`
    GROUP BY 
        MONTH(`lastmodified`)

) AS `data2014`
ON (
    `data2013`.`month`=`data2014`.`month`
)

為什么不將(活動使用的)數據存儲在同一張表中(簡單得多)?

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM