forked from mohamed20o03/Voting_system
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathInsertingCountries.sql
More file actions
48 lines (39 loc) · 1.22 KB
/
InsertingCountries.sql
File metadata and controls
48 lines (39 loc) · 1.22 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
DROP TABLE IF EXISTS Temp;
-- Create a temporary table to store data from egypt.csv
CREATE TEMPORARY TABLE Temp (
governorate VARCHAR(100) NOT NULL,
city VARCHAR(100) NOT NULL,
district VARCHAR(100) NOT NULL
);
LOAD DATA INFILE '/var/lib/mysql-files/egypt.csv'
INTO TABLE Temp
FIELDS TERMINATED BY ','
LINES TERMINATED BY '\n'
IGNORE 1 LINES
(governorate, city, district); -- Add more @ignore if more columns exist
insert into Countries(code , name)
values
('EGY', 'Egypt');
INSERT INTO States_Governorates (name, country_code)
SELECT DISTINCT governorate, 'EGY'
FROM Temp
WHERE governorate IS NOT NULL;
INSERT INTO Cities (name, states_governorates_id)
SELECT DISTINCT city, s.id
FROM Temp t
JOIN States_Governorates s ON t.governorate = s.name
WHERE t.city IS NOT NULL
AND s.country_code = 'EGY';
INSERT INTO Districts (name, city_id)
SELECT DISTINCT district, c.id
FROM Temp t
JOIN Cities c ON t.city = c.name
JOIN States_Governorates s ON c.states_governorates_id = s.id
WHERE t.district IS NOT NULL
AND s.country_code = 'EGY';
SELECT *
FROM Countries co
JOIN States_Governorates s ON co.code = s.country_code
JOIN Cities c ON c.states_governorates_id = s.id
JOIN Districts d ON d.city_id = c.id
WHERE co.code = 'EGY';