从一个表复制到另一个表

时间:2014-04-23 10:58:27

标签: mysql sql

我知道如何使用MySQL从一个表复制到另一个表:

INSERT INTO original_table
SELECT * FROM temp_table WHERE id = 1

但我的情况有所不同:

我有temp_tableoriginal_table。两者都有相同的列名,即

    id,
    state,
    city,
    address

但是temp_table包含州和城市的真实姓名,即州和市列包含州和市的名称。我希望复制此表,以便状态和城市在移至original_table时应包含该州和城市名称的ID。有状态和引用的元表。

陈述:

id 
state_name

城市:

id,
state_id,
city_name

我怎样才能做到这一点?

1 个答案:

答案 0 :(得分:3)

只需恰当地将temp_table加入statescities表:

INSERT INTO original_table
  (id, state, city, address)
SELECT t.id, s.id, c.id, t.address
FROM   temp_table t
  JOIN states     s ON s.state_name = t.state
  JOIN cities     c ON c.city_name  = t.city