我有3张桌子:
表1
CustomerID Name Sname Zipcode
1 test1 test1 xxx2
2 test2 test2 yyy2
3 test3 test3 xxx2
表2
StaffID Name sname
1 Jack Mack
2 Jhon Addison
表3
ID CustomerID StaffID
1 1 1
我不确定SQL是否可以这样做,所以在C#中我想要的是如果StaffID 2不在表3中并且如果工作人员想要访问zipcode xx2中的所有客户,那么通过单击访问按钮他应该被插入所有的邮政编码。因此,如果我选择Zipcode xxx2,那么查询应首先检查我是否没有访问特定的Zipcode,如果没有,则将该人添加到表3中,以便更新的表3看起来像这样:
ID CustomerID StaffID
1 1 1
2 1 2
3 3 2
正如您所看到的,StaffID 2想要访问xxx2 zipcode,因此他在表3中获得了两个条目,因为有两个CustomerID,其Zipcode与xxx2相同。
我做了一些在线研究我会IF EXISTS (SELECT
,但它只添加一个条目。此外,我想我将期待来自C#zipcode,CustomerID和StaffID
答案 0 :(得分:0)
根据您的描述,您似乎只需要一个简单的插入声明。
INSERT INTO Table3 (CustomerID, StaffID)
select CustomerID, @StaffId from Table1
where Zipcode = @zipcode
and NOT EXISTS(select StaffID from Table3 where StaffID = @staffId)
答案 1 :(得分:0)
尝试此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)