目前我有三个表:测试,联系和工作人员
测试
FirstName LastName
联系
Contact_Id Contact_FirstName Contact_LastName
人员
Staff_ID Contact_Id
Staff Id应该是自动增加的,我需要一个遍历测试表中所有行的脚本。如果FirstName和LastName匹配Contact_FirstName和Contact_LastName。将匹配的Contact_ID号码添加到Staff表中的Contact_Id。
答案 0 :(得分:0)
INSERT INTO `staff` (`Contact_Id`)
SELECT c.`ContactId`
FROM `Contact` c
JOIN `Test` t ON c.`Contact_FirstName` = t.`FirstName` AND
c.`Contact_LastName` = t.`LastName`
答案 1 :(得分:0)
首先通过在CREATE语句中添加IDENTITY来更改Staff表的结构,如果您希望它自动递增。
CREATE TABLE Staff(StaffID INT IDENTITY,ContactID INT)
现在尝试这个只插入contactID,因为IDENTITY允许你跳过那个列,sql为你创建这些ID。
INSERT Staff SELECT Contact_ID FROM Contact c JOIN Test t ON c.Contact_FirstName = t.FirstName and c.Contact_LastName = t.LastName
这似乎是根据测试的联系人名称检查联系人的联系人姓名..但如果您传递人名而不是t.FirstName和t.LastName
,这应该有效