我有两张桌子:
A (productid partid)
B (productid partid)
我想向表C (productid partid)
中插入A
和B
中显示的所有行。然后从B
删除这些行。
例如:
A
productid partid
1 100
1 101
2 200
3 300
B
productid partid
1 100
2 200
4 400
4 401
您可以假设每对(productid,partid)在每个表格中都不会出现多次。
=====查询运行后====
C
将是:
productid partid
1 100
2 200
B
将是:
productid partid
4 400
4 401
我试图做的是:
Insert into C (productid,partid) (select productid,partid from A join B on ???? )
我的问题是我不知道如何在多个列上连接表? 我不知道如何在同一个查询中插入和删除?
答案 0 :(得分:2)
您只需使用两个表中所需的列,并将其与AND
运算符一起使用:
Insert into C (productid,partid)
select A.productid, A.partid
from A join B on A.productid = B.productid AND A.partid = B.partid
答案 1 :(得分:1)
要插入C,上面使用的查询是正确的 -
Insert into C (productid,partid)
select A.productid, A.partid
from A join B on A.productid = B.productid AND A.partid = B.partid
要从B中删除,您可以使用以下查询 -
Delete B from B
join C
on C.productid = B.productid
AND C.partid = B.partid
由于您必须删除B中的记录,因此您必须在删除语句中提供该记录。