2根据日期执行SQL查询

时间:2012-04-29 07:54:35

标签: mysql sql

我有以下结构:

ID    CID    CAMPAIGN_ID   DATE(DATETIME)        DEVICE
1     123    88            2012-04-29 07:26:14   PC
2     123    88            2012-04-29 08:46:04   IPHONE
3     555    91            2012-04-29 08:36:04   IPAD

我正在尝试找到一种方法来构建一个查询,该查询将返回首次使用PC的所有有效CID,然后在指定的campaign_id下使用IPHONE(根据指定的日期)。

在上面的示例中,CID 123属于该类别。

1 个答案:

答案 0 :(得分:1)

正如@JohannBlais在评论中所说,您需要根据所需条件加入表格,然后筛选所选广告系列:

SELECT `t1`.`CID`
FROM
       `tbl` AS `t1`
  JOIN `tbl` AS `t2` ON (
        `t1`.`CID`            = `t2`.`CID`
    AND `t1`.`CAMPAIGN_ID`    = `t2`.`CAMPAIGN_ID`
    AND `t1`.`DATE(DATETIME)` < `t2`.`DATE(DATETIME)`
    AND `t1`.`DEVICE`         = 'PC'
    AND `t2`.`DEVICE`         = 'IPHONE'
)
WHERE `t1`.`CAMPAIGN_ID` = @specified_campaign;