求一MYSQL

梅子 2012-01-13 05:26:29

SELECT
ID,
Name,
Time,
IP
FROM
Table
WHERE
time>='2012-01-04 00:00:00' and time<='2012-01-10 23:59:59'


我想在这段基础上加上,所得到的IP是否为2012-01-04前就已经存在的?
...全文
70 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
百年树人 2012-01-16
  • 打赏
  • 举报
回复
try
SELECT ID,Name,Time,IP,
case when
exists(select 1 TABLE where Time<='2012-01-03 23:59:59' and IP=t.IP)
then 'Yes'
else 'No'
end as oldip
FROM Table
WHERE time>='2012-01-04 00:00:00' and time<='2012-01-10 23:59:59'
梅子 2012-01-16
  • 打赏
  • 举报
回复

SELECT
ID,
Name,
Time,
IP,

case
when
IP in (select IPfrom TABLE where Time<='2012-01-03 23:59:59' group by IP)
then 'Yes'
else
'No'
end as oldip



FROM
Table
WHERE
time>='2012-01-04 00:00:00' and time<='2012-01-10 23:59:59'


我的意思差不多是这样,怎么改进这个Sql啊?
上面这条运行速度太慢了~~~
javatemptation 2012-01-14
  • 打赏
  • 举报
回复
猜测lz的意思为:想找到IP对应的日期在2012-01-04前就有的


use tempdb;
/*
create table A
(
ID int not null,
Name nvarchar(10) not null,
[Time] date not null,
IP nvarchar(20) not null
);
insert into A values
(1,'a','2012-01-01','192.168.1.1'),
(2,'b','2012-01-01','192.168.1.2'),
(3,'a','2012-01-04','192.168.1.1'),
(4,'c','2012-01-10','192.168.1.3');
*/
select
B.ID,
B.Name,
B.[Time],
B.IP
from A AS B
where B.IP in
(
select A.IP from A
where A.[Time] < '2012-01-04'
)
and B.[Time] between '2012-01-04' and '2012-01-10';
叶子 2012-01-13
  • 打赏
  • 举报
回复
[Quote=引用楼主 sunnxxy 的回复:]
我想在这段基础上加上,所得到的IP是否为2012-01-04前就已经存在的?
[/Quote]

这句话我读不懂....
  • 打赏
  • 举报
回复
真的不会吧
勿勿 2012-01-13
  • 打赏
  • 举报
回复
不会吧。

27,579

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server 应用实例
社区管理员
  • 应用实例社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧