问一条sql执行效率的问题

wadr52013145 2010-08-29
sjynt131 写道
试试这个:
insert into a(id,status)
select b.id,0 from b left join a on b.id=a.id
where a.id is null;


这个应该行  先把b表里符合条件的选出来 然后插入a表

今夜有雨 2010-08-30
dingjun1 写道
今夜有雨 写道
谢谢大家,最后采用了full join的方式,两张表full join一下,存入第三张表。

40秒内能完成么?


不能,估计40分钟吧,反正到可以忍受的范围之内了。
ztbsuper 2010-08-31
insert into A(id,status)
select B.ID,0
from table_B B
where not exists(
   SELECT 1 FROM A
    WHERE A.ID=B.ID
)

我一般这样写。。。in感觉非常慢的
Mrpublic 2010-09-06
sjynt131 写道
试试这个:
insert into a(id,status)
select b.id,0 from b left join a on b.id=a.id
where a.id is null;


帮分析指点一下:
1. a.id is null 不就是不存在的数据吗?
2. b.id =a.id 不就是b.id=null ? id 为null?

Mrpublic 2010-09-06
今夜有雨 写道
谢谢大家,最后采用了full join的方式,两张表full join一下,存入第三张表。



把sql show出来吧
anningkf 2010-09-07
看的真过瘾
Sunny0229 2011-01-06
yidao620c 写道
使用Oracle10G增强的merge into语句:

MERGE INTO A
  USING B
    ON (A.ID = B.ID)
  WHEN NOT MATCHED THEN
    INSERT (ID, status)
    VALUES (B.ID, '0');


挺这个
chenkuntian 2011-02-17
kj建立
z274084093 2011-02-18
insert into A(ID,STATUS)
select id,0 from B,A where
B.ID(+) = A.ID AND B.ID = NULL
czmmiao 2011-02-21
z274084093 写道
insert into A(ID,STATUS)
select id,0 from B,A where
B.ID(+) = A.ID AND B.ID = NULL

insert into A(ID,STATUS)
select id,0 from B,A where
B.ID(+) = A.ID AND A.ID = NULL
这样才对吧!
Global site tag (gtag.js) - Google Analytics