TABLE t1 和 TABLE t2 表结构相同,但数据不同:
t1:
create table t1(
id int,
tm datetime,
data varchar(200)
)
数据:
1 2009-11-11 数据1
1 2009-11-12 数据2
2 2009-11-12 数据3
3 2009-11-12 数据4
t2:
create table t2(
id int,
data varchar(200)
)
数据:
1 2009-11-11 数据1
1 2009-11-12 数据2
2 2009-11-12 数据3
2 2009-11-13 数据3
2 2009-11-14 数据3
3 2009-11-12 数据4
现在我想用它一条语句将 t2 中有,而 t1 没有的数据查出来,HOW?
问题补充:
效率高一点的。另外,1楼和2楼的语句,在SELECT中不能添加 WHERE 吗?
我的T1和T2都有50W条,很大的
数据库为 MS SQL 2000
t2:
create table t2(
id int,
tm datetime,
data varchar(200)
)
CREATE UNIQUE INDEX asdfadsf ON t1(id,tm);
CREATE UNIQUE INDEX asdfadsf2 ON t2(id,tm);
查询条件中一定要加一个: TM > '2009-11-09'
最佳答案
select * from t2 where convert(varchar(10),t2.id)+convert(varchar(25),t2.tm,120)+convert(varchar(200),t2.data) not in(
select convert(varchar(10),t2.id)+convert(varchar(25),t2.tm,120)+convert(varchar(200),t2.data) from t2,t1 where t2.id=t1.id and t2.tm=t1.tm and t2.data=t1.data
)
兄弟你这个难度有点大阿 效率高不了
http://zhidao.baidu.com/question/124838656.html?fr=qrl&cid=871&index=4&fr2=query
t1:
create table t1(
id int,
tm datetime,
data varchar(200)
)
数据:
1 2009-11-11 数据1
1 2009-11-12 数据2
2 2009-11-12 数据3
3 2009-11-12 数据4
t2:
create table t2(
id int,
data varchar(200)
)
数据:
1 2009-11-11 数据1
1 2009-11-12 数据2
2 2009-11-12 数据3
2 2009-11-13 数据3
2 2009-11-14 数据3
3 2009-11-12 数据4
现在我想用它一条语句将 t2 中有,而 t1 没有的数据查出来,HOW?
问题补充:
效率高一点的。另外,1楼和2楼的语句,在SELECT中不能添加 WHERE 吗?
我的T1和T2都有50W条,很大的
数据库为 MS SQL 2000
t2:
create table t2(
id int,
tm datetime,
data varchar(200)
)
CREATE UNIQUE INDEX asdfadsf ON t1(id,tm);
CREATE UNIQUE INDEX asdfadsf2 ON t2(id,tm);
查询条件中一定要加一个: TM > '2009-11-09'
最佳答案
select * from t2 where convert(varchar(10),t2.id)+convert(varchar(25),t2.tm,120)+convert(varchar(200),t2.data) not in(
select convert(varchar(10),t2.id)+convert(varchar(25),t2.tm,120)+convert(varchar(200),t2.data) from t2,t1 where t2.id=t1.id and t2.tm=t1.tm and t2.data=t1.data
)
兄弟你这个难度有点大阿 效率高不了
http://zhidao.baidu.com/question/124838656.html?fr=qrl&cid=871&index=4&fr2=query