2013-05-01 5 views
0

Я пытаюсь вставить данные из одной таблицы в другую, но они должны связываться, используя тот же ID.MYSQL, вставляя данные из одной таблицы в другую

Я использую следующий код:

INSERT INTO table1 (population_total, GDP_current_US, life_expectancy_at_birth) 
SELECT population_total, GDP_current_US, life_expectancy_at_birth 
FROM table2 
WHERE table1.id=table2.country_code 

И я получаю следующее сообщение об ошибке:

#1054 - Unknown column 'table1.id' in 'where clause'

Что я делаю неправильно?

+0

вставка не совпадает ни к чему - ОБНОВЛЕНИЕ может - так что вы можете быть смешивания двух идей Вот. – Randy

ответ

1

Попробуйте это:

INSERT INTO table1 (id, population_total, GDP_current_US, life_expectancy_at_birth) 
SELECT country_code, population_total, GDP_current_US, life_expectancy_at_birth 
FROM table2 

Это будет тянуть код страны из исходной таблицы и вставить его в качестве идентификатора в новой таблице. Таким образом, они будут «связаны» одним и тем же идентификатором.

Если вы пытаетесь обновить существующие строки, которые соответствуют коду страны, вам нужно сделать, это:

UPDATE table1   
JOIN table2 
    ON table1.id = table2.country_code 
SET 
    population_total = table2.population_total, 
    GDP_current_US = table2.GDP_current_US, 
    life_expectancy_at_birth = table2.life_expectancy_at_birth 
+0

Я пробовал это, и происходит то, что он создает новые строки. Таким образом, он не выглядит, если идентификатор в таблице1 совпадает с идентификатором country_code в таблице2. – Daniil

+0

Затем, как сказал Рэнди, вы путали 'UPDATE' с' INSERT.' – imthepitts

+0

. Пожалуйста, ознакомьтесь с моим обновленным ответом для обновления из объединенной таблицы. – imthepitts

Смежные вопросы