我在MySql中有一个存储过程,我试图在Person_Table中插入值。 Person_Table中的一列是CompanyID。
但我需要检索Company_Table.CompanyID
中的CompanyID是一个自动递增的主键。两个表都有列CompanyName
。
我想在同一过程中将Company+Table.CompanyID
插入Person_Table.CompanyID
列。
我在加入2个表时遇到问题。 可以 在插入语句中使用内连接表吗?
这是我到目前为止所做的,但它不喜欢内连接:
insert into person p
(FarmName, FirstName, MiddleName, LastName, Phone, CompanyID)
values
( oFarmName, oFirstName, oMiddleName, oLastName, oPhone, oCompanyID)
inner join company c on p.FarmNamne = c.CompanyName
where p.FarmName = c.CompanyID;
答案 0 :(得分:0)
我无法回答是否可以插入内连接,但我的感觉说这是不可能的。
无论如何,为了提供一些帮助,我建议你以不同的方式解决这个问题:
你在第一张桌子AFTER INSERT
上放置一个触发器怎么样?此时,自动增量ID已知,可以使用触发器轻松插入表2中。
答案 1 :(得分:0)
如果我理解你的问题,那么在重命名表格和列以符合您的信息后,这应该有效:
INSERT INTO Person_Table
(FarmName, FirstName, MiddleName, LastName, Phone, CompanyID)
VALUES
( oFarmName, oFirstName, oMiddleName, oLastName, oPhone, (
SELECT c.CompanyId FROM Person_Table p
INNER JOIN Company_Table c ON c.CompanyName = p.CompanyName)
)
只有在没有重复的公司名称但是给它一个镜头时,这才有效。