从两个tables, table1和table2拿记录,insert进另一个table.简单写法是,
insert into table3 select a1,a2,a3,a4 from table1 a, table2 b where a.id=b.id但是又存在另一个问题,在insert table3的时候,如果和a1,a2,a3全部相等的记录已经有了,就不要insert了。
这样可不可以写成一句sql?
或者要怎样,可以完成这个任务?
insert into table3 select a1,a2,a3,a4 from table1 a, table2 b where a.id=b.id但是又存在另一个问题,在insert table3的时候,如果和a1,a2,a3全部相等的记录已经有了,就不要insert了。
这样可不可以写成一句sql?
或者要怎样,可以完成这个任务?
解决方案 »
- 本地10goracle连服务器11g 用plsql怎么连接?
- Oracle挂接数据文件的问题!
- oracle中的查询问题,要把列变成表头,急!!!!!!!!!!!!
- 怎样对Oracle存储过程进行加密
- orcale中服务进程,那位能详细介绍或者有资料?谢谢
- 求救一个简单问题
- 只有完全逻辑备份dmp,如何在另一台机子恢复数据库.谢谢帮助.
- 苦恼小妹
- 菜鸟求助,写了一个存储过程,报错提示:pls:object is invailid ;pl/sqlstatement ignored
- 请教一下分组、排序、赋值问题
- the network adapter could not establish the connection
- 表空间删除特例
select a1,a2,a3,a4
from table1 a, table2 b , table3 cwhere
a.id=b.id
and not exists(c.字段=a.的字段)
a, b, c,d
where a.a4 in
(
select max(x.a4) from a x, c y where
X.a1 = Y.a1
AND X.a2 = Y.a2
AND X.a3 = Y.a3
and X.a5='T'
and Y.c2 = 'TI'
GROUP BY X.a1, X.a2, X.a3
)
AND a.a1 = c.a1
AND a.a2 = c.a2
AND a.a3 = c.a3
AND a.a4 = b.b2
and a.a5='T'
and c.c2 = 'TI'
AND not exists(a.a1 = d.d1
and a.a2 = d.d2
and a.a3 = d.d3)首先这个sql对不对,其次怎么写可以执行快一点呢?
(
select a1,a2,a3,a4
from table1 a
where (a1,a2,a3) not in(select a1,a2,a3 from table3)
)
当本菜鸟没有找到,(呵呵)
using
(select a.a1 a1,a.a2 a2,a.a3 a3,a.a4 a4 from table1 a inner join table2 b on a.id=b.id) t1
on(t3.a1=t1.a1 and t3.a2=t1.a2 and t3.a3=t1.a3)
when not matched then
insert (t3.a1,t3.a2,t3.a3,t3.a4) values(t1.a1,t1.a2,t1.a3,t1.a4)