0

我有以下结构:

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

我试图找到一种方法来构建一个查询,该查询将返回所有有效的 CID,这些 CID 首先使用 PC,然后在指定的活动 ID 下使用 IPHONE(根据指定的日期)。

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

4

1 回答 1

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;
于 2012-04-29T08:31:22.867 回答