Python-da Əlaqəli Cədvəllər Zənciri

İndi fərz edək ki, istifadəçilər müəyyən şəhərlərdə yaşayır və bu şəhərlər müxtəlif ölkələrdə yerləşir. Bu halda saxlama üçün bizə üç cədvəl lazım olacaq: istifadəçilər şəhərlərlə, şəhərlər isə ölkələrlə əlaqələndiriləcək. Eyni zamanda, istifadəçiləri ölkələrlə birbaşa əlaqələndirmək üçün əlavə bir sahəyə ehtiyac olmayacaq - axı istifadəçilər şəhərlər və ölkələr arasındakı əlaqə vasitəsilə artıq ölkələrlə əlaqəli olacaqlar.

Gəlin cədvəllərimizə nəzər salaq. Ölkələr cədvəli:

countries
id name
1 country1
2 country2

Şəhərlər cədvəli:

cities
id name country_id
1 city1 1
2 city2 1
3 city3 2

İstifadəçilər cədvəli dəyişməz qalacaq:

users
id name city_id
1 user1 1
2 user2 1
3 user3 2
4 user4 1
5 user5 3
6 user6 2

Sorğular

İstifadəçiləri onların şəhərləri və ölkələri ilə birlikdə əldə etmək üçün iki birləşmə (join) etməliyik: birinci şəhərləri istifadəçilərə, ikinci isə ölkələri şəhərlərə qoşacaq:

sqlSELECT
  users.name,
  cities.name as city_name,
  countries.name as country_name
FROM
  users
LEFT JOIN cities ON cities.id=users.city_id
LEFT JOIN countries ON countries.id=cities.country_id

Praktiki Tapşırıqlar

Задание 1

Fərz edək ki, məhsullar müəyyən altkateqoriyaya, altkateqoriyalar isə müəyyən kateqoriyaya aiddir. Saxlama quruluşunu təsvir edin.

Задание 2

Məhsulları onların altkateqoriyaları və kateqoriyaları ilə birlikdə çıxaran sorğu yazın.

Задание 3

Altkateqoriyaları onların kateqoriyaları ilə birlikdə çıxaran sorğu yazın.