0

我在 MySql 中有一个存储过程,我试图将值插入到 Person_Table 中。Person_Table 中的一列是 CompanyID。

但我需要从中检索 CompanyIDCompany_Table.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;
4

2 回答 2

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)
)

这仅在没有重复的公司名称但试一试的情况下才有效。

于 2012-07-17T21:09:05.223 回答
0

我无法回答是否可以插入内部连接,但我的感觉是不可能。

无论如何,为了提供一点帮助,我建议您以不同的方式解决这个问题:

你在你的第一张桌子上放一个触发器怎么样AFTER INSERT?此时,自动增量 id 是已知的,可以使用触发器轻松插入到表 2 中。

http://dev.mysql.com/doc/refman/5.1/en/create-trigger.html

于 2012-07-17T20:24:06.950 回答