2012-04-29 48 views
0

我有以下結構:2步驟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

請在CID自連接和CAMPAIGN_ID其中的日期對於iphone而言,要高於PC之一。 – 2012-04-29 08:06:04

回答

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;