我有以下结构:
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属于该类别。
答案 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;