मैं मुख्य तालिका से मूल्यों के साथ कुछ टेबल बनाने की कोशिश कर रहा हूँ। 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;

लेकिन देश_आईडी के लिए यह चयन सभी देश आईडी लौटाता है। मुझे टेबल देशों में देश आईडी प्राप्त करने की आवश्यकता है जहां देशों में आईएसओ आईएसओ के साथ मेल खाता है।

इस तालिका के बाद, राज्यों को, मुझे परिषदों का निर्माण करना है, स्थानों से मूल्य प्राप्त करना है, फिर से एक विशिष्ट चयन के साथ, और फिर से राज्यों से राज्य आईडी और शायद देश की आईडी भी प्राप्त करने का प्रयास करना है।

कृपया, कोई भी मुझे इस चयन को नेस्ट करने के लिए कठोर तरीके से प्राप्त कर सकता है? धन्यवाद।

1
kikerrobles 11 अगस्त 2016, 16:39

1 उत्तर

सबसे बढ़िया उत्तर

ऐसा लगता है कि आपको शामिल होने की आवश्यकता है

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.ISO
1
ScaisEdge 11 अगस्त 2016, 16:51