1

我有一张桌子,有不同的日期和类似的其他参数。它看起来像这样:

ID - Date - Domain Name
1 ! 02-20-2013 ! google.com
2 ! 02-20-2013 ! yahoo.com
3 ! 02-20-2013 ! whoknows.com
4 ! 02-20-2013 ! NULL
5 ! 04-25-2013 ! yahoo.com
6 ! 04-25-2013 ! something.com
7 ! 04-25-2013 ! google.com
8 ! 04-25-2013 ! NULL
9 ! 04-25-2013 ! google.com

我想运行一个查询,该查询将找到 2013 年 2 月 20 日中现在也显示在 2013 年 4 月 25 日中的 DOMAIN NAME 值(当然不是 NULL 或空值)

所以输出将是:

5 ! 04-25-2013 ! yahoo.com
7 ! 04-25-2013 ! google.com
9 ! 04-25-2013 ! google.com
4

2 回答 2

1

您必须将表连接到自身。

SELECT t2.* FROM MyTable t1 
  JOIN MyTable t2 
    ON t1.`Domain Name` = t2.`Domain Name`
 WHERE t1.date = '2013-02-20'
   AND t2.date = '2013-04-25'

看到这个 SQLFiddle

请注意,“04-25-2013”​​不是标准日期格式 - 您可能想要使用“2013-04-25”。

于 2013-04-27T08:03:41.990 回答
1

询问:

SQLFIDDLE示例

SELECT m1.* 
FROM mytable m1
WHERE m1.date = '2013-04-25' 
AND EXISTS (SELECT 0
            FROM mytable m2
            WHERE m2.`Domain Name` = m1.`Domain Name`
            AND m2.`Domain Name` is not null
            AND m2.`Domain Name` != ''
            AND m2.date = '2013-02-20')

结果:

| ID |                         DATE | DOMAIN NAME |
---------------------------------------------------
|  5 | April, 25 2013 00:00:00+0000 |   yahoo.com |
|  7 | April, 25 2013 00:00:00+0000 |  google.com |
|  9 | April, 25 2013 00:00:00+0000 |  google.com |
于 2013-04-27T08:12:18.213 回答