Mysql将数据从一个表插入另一个选定的行

时间:2014-07-10 08:09:57

标签: php mysql sql

嗨我有一个带有2个表的Mysql数据库 第一个表有2个字段

country_codecity_name

第二个表有3个字段

country_codecountry_namecountry_cities

我需要创建一个查询:

select all city_name and country_code from first table and for each country_code insert into second table in field country_cities

在第一张桌子上找到的城市以逗号分隔

我不确定我是否可以使用Mysql查询,或者更好地使用php脚本 谢谢你的帮助

2 个答案:

答案 0 :(得分:0)

您可以使用第一个表格中的城市列表更新第二个表格中的city_name列。如果第一个表的城市名称已经以逗号分隔,则只需将其从一个表格移动到另一个表格。

UPDATE second_table 
SET S.country_cities = A.city_name
FROM first table A INNER JOIN second_table S 
ON A.country_code = S.country_code

答案 1 :(得分:0)

如果您需要更新country_cities中的second_table,可以通过此示例查询执行此操作:

UPDATE second_table st
INNER JOIN (
    SELECT 
    country_code,
    GROUP_CONCAT(city_name) as grouped_cities
    FROM first_table
    GROUP BY country_code
) as tmp_table ON tmp_table.country_code = st.country_code
SET st.country_cities = tmp_table.grouped_cities;

Here您可以找到GROUP_CONCAT文档。 只是复制和过去,以避免混淆分隔符:

  

组中值之间的默认分隔符是逗号(“,”)。至   明确指定分隔符,使用SEPARATOR后跟字符串   应在组值之间插入的文字值。至   完全取消分隔符,指定SEPARATOR''。