clubing两个SQL语句

clubing两个SQL语句,sql,oracle,Sql,Oracle,我有两个名为table1和table2的表 Table1具有名称和Table1_id的映射 Table2具有与Table2\u id和table1\u id的映射 现在我想要所有的table2_ID,它有table1_id1,但没有table1_id2,其中table1_id1和table2_id2是值 并将上面的table2_id与table1_id2一起插入,如果执行上面的查询,它将返回“0”行数 我有两个sql语句 select table2_id from table2 where ta

我有两个名为table1和table2的表

Table1具有名称和Table1_id的映射

Table2具有与Table2\u id和table1\u id的映射

现在我想要所有的table2_ID,它有table1_id1,但没有table1_id2,其中table1_id1和table2_id2是值

并将上面的table2_id与table1_id2一起插入,如果执行上面的查询,它将返回“0”行数

我有两个sql语句

select table2_id from table2 where table2.table1_id = 
 (select table1_id from table1 where table1.name = 'name1')
minus 
select table2_id from table2 where table2.table1_id = 
 (select table1_id from table1 where table1.name = 'name2')
现在为上述所有table2\u ID运行多个insert into语句,如下所示

 Insert into table2 values (table2_id, 
 (select table1_id from table1 
 where table1.name = 'name2')) 
我的问题是,将以上内容加入到单个sql中

例如:

表1

表2

如果我执行第一个sql命令,其中name的输入分别为r1name和r2name,那么我将得到“l2id,l3id”的输出,因为l1id同时映射为r1id和r2id,“l2id”,“l3id”仅映射为“r1id”

执行第一条sql语句后的输出:

l2id
l3id
现在,我想在表2中插入一行(l2id,r2id)和(l2id,r2id)

表2中执行2条“insert”语句后的输出

 l1id r1id
 l1id r2id
 l2id r1id
 l3id r1id
 l2id r2id
 l3id r3id.
尝试:


你的问题不清楚,你能用简单的形式和例子解释一下你到底需要什么吗。。还有一个问题-表2中的一个表1 id是否有多个条目?我添加了一个示例供您参考您的问题仍然不清楚,“r3id”来自何处?它以前不在任何桌子上。
l2id
l3id
 l1id r1id
 l1id r2id
 l2id r1id
 l3id r1id
 l2id r2id
 l3id r3id.
INSERT INTO table2 (table2_id, table1_id)
SELECT table2_id, 'name2'
FROM table2
WHERE table2_id IN 
   (SELECT table2_id FROM table2 WHERE table1_id = 'name1')
AND table2_id NOT IN 
   (SELECT table2_id FROM table2 WHERE table1_id = 'name2');