如何编写以下SQL查询

时间:2015-03-23 04:56:40

标签: mysql sql

我在MYSQL DB上使用以下架构。

id bigint(20)
url varchar(500)
timestamp datetime
server varchar(500)

我需要编写一个查询来查找在一小时或更长时间内由两台不同服务器切换的所有网址。

因此,例如,如果url1在11:00由server1服务并且在12:00由server2服务则应该在结果中,但是如果url2由服务器1在11:05服务并且服务器2服务于11: 30那么它不应该在结果中。

请在此处找到示例小提琴Fiddle。在这种情况下,输出应为www.url2.com

1 个答案:

答案 0 :(得分:2)

只需在timestampdiff中使用where exists...subquery功能:

select distinct url 
from sample s1
where exists (
     select url 
     from sample s2 
     where 
     s2.url=s1.url
     and timestampdiff(HOUR, s2.timestamp, s1.timestamp)>=1
    )

SQLFIDDLE DEMO