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

最初にPCを使用し、次に指定されたcampaign_idの下で(指定された日付に従って)IPHONEを使用したすべての有効なCIDを返すクエリを作成する方法を見つけようとしています。

上記の例では、CID123はそのカテゴリに分類されます。

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 に答える