在phpMyAdmin及MySQL中如何合并两表指定字段生成新表
嗨,我来帮你一步步搞定这个需求!要生成包含Street、Number、City Name、Latitude、Longitude字段的新表,咱们分phpMyAdmin可视化操作和MySQL命令行两种方式来实现,你可以根据自己的习惯选:
方法一:用phpMyAdmin图形化操作
- 打开phpMyAdmin后台,先选中存放
City和Coordinates表的目标数据库 - 点击顶部导航栏的「SQL」标签,进入SQL查询编辑界面
- 把下面的SQL语句粘贴到编辑框里,点击「执行」按钮就搞定了:
CREATE TABLE NewCityCoordinates AS SELECT c.Street, c.Number, ct.`City Name`, c.Latitude, c.Longitude FROM Coordinates c INNER JOIN City ct ON c.StateCODE = ct.StateCODE AND c.CityCODE = ct.CityCODE;
方法二:用MySQL命令行操作
- 打开终端/命令提示符,输入登录命令:
mysql -u 你的用户名 -p,回车后输入数据库密码 - 切换到目标数据库:
USE 你的数据库名称; - 把上面的SQL语句粘贴进去,回车执行即可
额外说明
- 上面的语句用了
INNER JOIN,只会保留两张表中StateCODE和CityCODE完全匹配的记录。如果你的Coordinates表里有一些没有对应城市的条目(比如示例里的第三条),想要保留这些条目(此时City Name会显示为NULL),可以把INNER JOIN改成LEFT JOIN。 - 新表的字段类型会自动继承原表的类型,比如
Latitude如果是DECIMAL类型,新表也会保持一致。 - 如果需要给新表加主键,可以在创建后执行这条语句:
ALTER TABLE NewCityCoordinates ADD COLUMN id INT AUTO_INCREMENT PRIMARY KEY FIRST;
内容的提问来源于stack exchange,提问作者ST1OFF
相关产品推荐
相关产品推荐

