我正在尝试用主表中的值创建一些表。精通PHP,但不精通MySQL。主表包含以下列:
Table Places
ISO
Country
Language
Region2 (is the estate)
Region4 (is ths city council)
ID (id for locality)
Locality获取国家并不困难:
CREATE TABLE countries ( id integer(11) UNSIGNED NOT NULL AUTO_INCREMENT PRIMARY KEY,
iso varchar(2) NOT NULL, language varchar(2) NOT NULL,
name varchar(50) NOT NULL) ENGINE=MyISAM DEFAULT CHARSET=utf8;
INSERT INTO countries ( iso , language, name)
SELECT DISTINCT ISO AS iso, Language as language, Country AS name FROM Places WHERE 1;现在我必须创建州,议会和城市,我已经尝试了两天,使用类似的东西(我已经尝试了一些不同的代码):
CREATE TABLE states ( id integer(11) UNSIGNED NOT NULL AUTO_INCREMENT PRIMARY KEY,
country_id integer(11) UNSIGNED NOT NULL, country_iso varchar(2) NOT NULL,
name varchar(80) NOT NULL) ENGINE=MyISAM DEFAULT CHARSET=utf8;
INSERT INTO states (country_id, country_iso, name)
SELECT DISTINCT
(SELECT countries.id AS country_id from countries WHERE countries.iso = Places.ISO),
ISO as country_iso ,
Region2 AS name FROM Places WHERE 1;但是对于country_id,这个选择会返回所有的国家id,我只需要得到表中countries.iso和ISO匹配的国家id。
在这个表,州之后,我必须创建议会,从地方获取值,再次使用Select this,并再次尝试从州获取州id,也可能是从国家id获取。
请,任何人可以让我在正确的方式嵌套这个选择?谢谢。
发布于 2016-08-11 21:52:00
看起来你需要一个连接
INSERT INTO states (country_id, country_iso, name)
SELECT DISTINCT countries.countries.id , ISO, Places.Region2
from countries
inner join Placesc on countries.iso = Places.ISOhttps://stackoverflow.com/questions/38898024
复制相似问题