Products和ProductRetailer表通过ProductId字段连接。 Products表具有ProductId和ProdcutName列,可保留400多条记录。 ProductRetailer表的字段是ProductId,RetailerId和Type。
INSERT INTO ProductRetailer (ProductId,RetailerId,Type) VALUES(1,120,2)
INSERT INTO ProductRetailer (ProductId,RetailerId,Type) VALUES(2,120,2)
INSERT INTO ProductRetailer (ProductId,RetailerId,Type) VALUES(3,120,2)
上面的示例查询分别为零售商'120'插入其ProductId'1','2','3'的记录。我在Products表中获得了400多种产品。我想编写一个INSERT查询,为Products表中的所有ProductIds添加RetailerId = 120的记录。我不能一个接一个地做到吗?
答案 0 :(得分:2)
您可以尝试insert-select
这样的
Insert into productretailer (ProductId,RetailerId,Type)
Select productid, '120', '2' from products
答案 1 :(得分:2)
当然,只需INSERT/SELECT
:
INSERT INTO ProductRetailer (ProductId,RetailerId,Type)
SELECT ProductId, 120, 2 FROM Products
WHERE ProductId NOT IN (
SELECT ProductId FROM ProductRetailer
WHERE RetailerId = 120
)
NOT IN
子句将确保该零售商不会INSERT
重复。