我需要使用从另一个表中获取的数据更新当前为空的表的列。
我有两张桌子。 " ar_geozone" table具有以下结构
ID -> primary key;
code_countries;
code_city;
name_city;
longitude_city;
latitude_city;
name_countries;
name_regions;
kind_regions.
" name_regions,kind_regions"列是空的,我想只更新" name_regions"柱
第二个"地区" table具有以下结构:
country;
code;
name;
kind.
表格中的所有列"地区"有记录。但是,记录数量低于表格中的数量" ar_geozone"。
使用以下查询
UPDATE ar_geozone ct
SET name_regions =
(SELECT name FROM regions ag
WHERE ag.country LIKE ct.code_countries)
系统给我错误:
"#1242 - 子查询返回超过1行"。
我应该如何修改查询以更新列?
答案 0 :(得分:1)
SQL LIKE运算符获取多行。这意味着您尝试使用多个国家/地区名称更新name_regions。
UPDATE ar_geozone ct
SET name_regions =
(SELECT GROUP_CONCAT(name SEPARATOR ', ') FROM regions ag
WHERE ag.country LIKE ct.code_countries)
它会将多行合并为逗号分隔的String。