所以我有2个表,一个是联系表,如
ContactId BigInt PK
Name varchar
Phone varchar
Address varchar
和第二个表供应商
CompanyName varchar
ContactId BigIn FK
我想将供应商加载到这样的表中 当我使用CSV加载供应商时,它会将它们放在联系表中并将它们加载到供应商表
中123423234, bob smith, 333-444-5555, 123 stree dr., CompanyOne
123123234, john doe, 444-333-2222, 423 SomeStreet st., Another Company
我保持表格小而简单的帖子,是的还有更多,但这里的关键是我需要使用Vendor表中联系人表格中的ContactID。我想从同一个cvs加载它们。如果它只是一个表但我不知道如何使用2个表,我知道如何做到这一点。
谢谢!
答案 0 :(得分:0)
您可以使用所有SQL执行此操作,或者使用PHP等脚本语言可能需要/更容易。但这是基本的伪代码概念。
创建一个非标准化的表格,您的CSV文件可以直接适合(我们称之为tempTable
)。然后将CSV中的数据放入其中。 (很确定这需要一些脚本)。
将联系信息插入联系表:
INSERT INTO contact (name, phone, address) (SELECT DISTINCT name, phone, address FROM tempTable);
将一个contactID列添加到tempTable,并通过JOINING使用contacts表中的ID更新它:
UPDATE tempTable JOIN contact ON
tempTable.name = contact.name
AND tempTable.phone = contact.phone
AND tempTable.address = contact.address
SET tempTable.contactID = contact.contactID
然后插入供应商,就像我们插入联系方式一样:
INSERT INTO VENDOR (companyName, contactID) (SELECT company, contactID FROM tempTable);