我有一个表,具有不同的日期和类似的其他参数。它看起来像这样:
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
答案 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'
请注意,“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 |