MYSQL - 选择一个不同的值,并从同一个表中选择一个值

时间:2013-04-27 07:54:23

标签: mysql

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

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日的DOMAIN NAME值,这些值现在也在04-25-2013中显示(不是NULL或空值)

所以输出结果为:

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

2 个答案:

答案 0 :(得分: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'

See this SQLFiddle

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

答案 1 :(得分:1)

查询:

<强> SQLFIDDLEExample

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 |