Есть части вашего поста, которые я до сих пор не понимаю, поэтому я собираюсь дать вам SQL, а затем вы можете запустить их в тестовой среде, и мы можем взять его оттуда и / или вернуться и начатьснова:
-- Populate CONTACTS_TABLE with contact_name from uploaded dump
INSERT INTO CONTACTS_TABLE (contact_name)
SELECT contact_name FROM DUMP_CONTACTS
-- Populate COMPANIES with information from both CONTACTS_TABLE + dump
INSERT INTO COMPANIES (name, contact_ID, year)
SELECT d.company, c.contactID, d.year
FROM DUMP_CONTACTS AS d
INNER JOIN CONTACTS_TABLE AS c
ON d.contact_name = c.contact_name
-- Populate SONGS_TABLE with info from COMPANIES
INSERT INTO SONGS_TABLE (companyID, contactID)
SELECT cm.companyID, cm.contact_ID
FROM COMPANIES AS cm
-- Populate Events with info from COMPANIES + dump
INSERT INTO Events (companyID, contactID, eventname, description)
SELECT cm.companyID, cm.contact_ID, d.event_name, d.event_description
FROM DUMP_CONTACTS AS d
INNER JOIN COMPANIES AS cm
ON d.company = cm.name
Сначала я заполняю CONTACTS_TABLE
, а затем, поскольку contactID
требуется для записей в COMPANIES
, вставьте записи из CONTACTS_TABLE
, присоединяющиеся к дампу.SONGS_TABLE
получает данные непосредственно из COMPANIES
, и, наконец, Events
получает свои данные, соединяя COMPANIES
и дамп.