我添加了10个客户端,我需要更新连接表(clients_products)并为每个产品和每个客户端添加新记录。
有没有办法在SQL Server管理工作室或其他什么地方进行双循环?
然后我删除了10行,但我想创建这10行并直接将它们与所有产品连接起来。 (请改写最后一句 - 毫无意义)
任何帮助? THX
我可以使用vb .net以编程方式执行此操作,但我认为有任何方法可以实现此目的。
答案 0 :(得分:1)
INSERT INTO Clients_Products
SELECT c.Id, p.Id
FROM Clients c
JOIN Products p on 1=1
WHERE c.Name in ('NEW CLIENT 1', 'NEW CLIENT 2')
答案 1 :(得分:1)
这需要交叉连接
INSERT INTO clients_products (client_id, product_id)
SELECT c.ID, p.ID
FROM Clients c
CROSS JOIN Products p
LEFT JOIN clients_products cp
on c.client_id and p.product_id
WHERE cp.client_id is null and p.product_id is null
答案 2 :(得分:0)
我不确定我理解你在说什么,但听起来你想要在SQL中循环记录集。 见:
答案 3 :(得分:0)
如果我正确地理解了你的问题,那么你要求两个表格的笛卡尔联合:
insert into clients_products
select
clients.id,products.id
from clients
cross join products