我知道如何使用MySQL从一个表复制到另一个表:
INSERT INTO original_table
SELECT * FROM temp_table WHERE id = 1
但我的情况有所不同:
我有temp_table
和original_table
。两者都有相同的列名,即
id,
state,
city,
address
但是temp_table包含州和城市的真实姓名,即州和市列包含州和市的名称。我希望复制此表,以便状态和城市在移至original_table
时应包含该州和城市名称的ID。有状态和引用的元表。
陈述:
id
state_name
城市:
id,
state_id,
city_name
我怎样才能做到这一点?
答案 0 :(得分:3)
只需恰当地将temp_table
加入states
和cities
表:
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