嗨我有一个带有2个表的Mysql数据库 第一个表有2个字段
country_code
和city_name
第二个表有3个字段
country_code
,country_name
,country_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脚本 谢谢你的帮助
答案 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''。