如何比较两个表,如果没有匹配将这些值插入到没有数据的表中?

问题描述:

我需要比较两个表Main_TableOUT-TableOUT_Table包含数据,但Main_Table可能没有我需要比较这些表,如果没有匹配,那么只需要插入这些无与伦比的值Main_Table所有data..so。这是我的查询......如何比较两个表,如果没有匹配将这些值插入到没有数据的表中?

Insert into Main_Table MT (MT.SerialNo) values (Select SerialNo 
from Main_Table MT where not exists (select SerialNo from OUT_Table OT 
where OT.SerialNo = MT.SerialNo)) 

这是从out_Table其不在Main_Table选择的值,但不插入值插入MAIN_TABLE。我使用Oracle数据库,Java(JSP)。请帮助我做到这一点。

+0

'INSERT ... SELECT ...'不带'VALUES'尝试删除它 – 2011-09-05 05:43:18

+0

听起来不像一个辉煌的设计 但我认为ü需要删除“价值” – miki

+0

感谢您的答复.. 。试试这个。 – sailaja

Insert into Main_Table MT (MT.SerialNo) 
values (Select SerialNo 
     from Main_Table MT 
     where not exists (select SerialNo 
          from OUT_Table OT 
          where OT.SerialNo = MT.SerialNo 
         ) 
     ) 

INSERT INTO..SELECT FROM语法,你在这里使用的是不正确的,在这里不需要的values关键字。应该只是

Insert into Main_Table MT (MT.SerialNo) 
(Select SerialNo 
     from Main_Table MT 
     where not exists (select SerialNo 
          from OUT_Table OT 
          where OT.SerialNo = MT.SerialNo 
         ) 
) 

下面是that Oracle documentation提供的示例。

+0

非常感谢您的快速回复。会试试这个。 – sailaja

+0

非常感谢你的回复。它的工作。 – sailaja

+0

@sailaja如果它正在工作,接受答案并不会伤害。 –