我是新手在oracle中编写查询。我想使用另一个表的where where
在表中插入一行例如:我有两个表:Table1和Table2
insert into table1 (col1, col2, col3) values ('1', '2', '3')
where exists (select * from table2 where col2 = '2')
我可以这样查询吗?有任何语法错误,请纠正我。基本上,如果table2有一行col2 = '2'
,我想在表1中插入一行。
任何帮助将不胜感激!在此先感谢!!
答案 0 :(得分:0)
建议的方法会导致语法错误。
适合以这种方式使用(为此目的):
insert into table1 (col2)
select col2 from table2 where col2 = '2';
或
insert into table1 (col1,col2,col3)
select col1,col2,col3 from table2 where col2 = '2';
或者可能(取决于第二张表的数据)
insert into table1 (col1,col2,col3)
select col1,col2,col3 from table2 where (col1,col2,col3) in ('1','2','3');
如果两个表至少包含这些列(col1,col2,col3)。
答案 1 :(得分:0)
目前还不清楚您是否只需要比较col2
TABLE2
是否为'2',或者您希望col2
的{{1}}与用于插入的TABLE2
的值。
如果它只是大约COL2
,你可以使用它。
'2'
如果一般约为INSERT INTO TABLE2(col1,col2,col3) select '1', '2', '3' FROM DUAL
WHERE EXISTS ( select 1 FROM TABLE2 WHERE col2 = '2' );
,那么您可以使用:
col2