复杂SQL语句提问

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
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值