MYSQL将数据从一个表插入到另一个表中

时间:2013-05-01 20:13:14

标签: mysql select insert where-clause

我正在尝试将数据从一个表插入到另一个表中,但是他们必须使用相同的ID进行链接。

我使用以下代码:

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 - 'where子句'

中的未知列'table1.id'

我做错了什么?

1 个答案:

答案 0 :(得分: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 

这将从源表中提取国家/地区代码,并将其作为ID插入新表中。因此,它们将被相同的ID“链接”。

如果您尝试更新与国家/地区代码匹配的现有行,则需要执行以下操作:

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