C# 自动插入行
我有三张桌子: 表1 客户ID名称Sname Zipcode 1测试1测试1 xxx2 2测试2测试2 YYYY 2 3测试3测试3 xxx2 表2 斯塔夫名字斯奈姆 1杰克麦克 2约翰·艾迪生 表3 ID CustomerID StaffID 1 1 1 我不确定SQL是否能做到这一点,所以在C中,我想要的是,如果StaffID 2不在表3中,并且如果员工希望访问zipcode xx2中的所有客户,那么通过单击访问按钮,应该为所有zipcode插入他。因此,如果我选择Zipcode xxx2,那么查询应该首先检查我是否访问了同一个Zipcode,如果没有,那么将此人添加到表3中,这样更新后的表3将如下所示: ID CustomerID StaffID 1 1 1 2 1 2 3 3 2 如您所见,StaffID 2希望访问xxx2 zipcode,因此他在表3中得到了两个条目,因为有两个zipcode与xxx2相同的CustomerIDC# 自动插入行,c#,sql,C#,Sql,我有三张桌子: 表1 客户ID名称Sname Zipcode 1测试1测试1 xxx2 2测试2测试2 YYYY 2 3测试3测试3 xxx2 表2 斯塔夫名字斯奈姆 1杰克麦克 2约翰·艾迪生 表3 ID CustomerID StaffID 1 1 1 我不确定SQL是否能做到这一点,所以在C中,我想要的是,如果StaffID 2不在表3中,并且如果员工希望访问zipcode xx2中的所有客户,那么通过单击访问按钮,应该为所有zipcode插入他。因此,如果我
我做了一些在线调查,如果存在,我会选择,但它只是添加了一个条目。另外,我想我会从C zipcode、CustomerID和StaffID中得到3个参数,从您的描述来看,您似乎只需要一个简单的insert语句
INSERT INTO Table3 (CustomerID, StaffID)
select CustomerID, @StaffId from Table1
where Zipcode = @zipcode
and NOT EXISTS(select StaffID from Table3 where StaffID = @staffId)
尝试此sql查询,假设您将@StaffId、@CustomerId和@Zip作为参数传递
INSERT INTO Table3 (CustomerID, StaffID)
SELECT CustomerID, @StaffId FROM Table1
WHERE Zipcode = @zip
AND NOT EXISTS(SELECT StaffID FROM Table3 WHERE StaffID = @staffId
AND CustomerID = @CustomerId)
表3是否需要持久化,或者您是否需要一个将表3作为结果的查询,但它永远不会存储在数据库中?另外,我想我理解您的要求,但我不知道是否StaffID 2不在表3要求中。@ScottChamberlain表3在那里,因此它将检查表1中的zipcode并将结果插入表3。表3的FK从StaffID表3到StaffID表2,从Customer表3到CustomerID表1,因此,如果StaffID2已经访问CustomerID 2,那么在表3中为他设置另一个条目是没有意义的,我需要在表3 CustomerID中插入StaffID值@CustomerID,@SaffID,因为这将由用户C提供。这会自动将StaffID添加到所有邮政编码中吗?不,您使用这个而不是那个调用。INSERT INTO可以使用值并添加一行信息,也可以像我一样将其链接到select语句中。