Python'дагы байланышкан таблицалар тизмеси
Эми колдонуучулар белгилүү бир шаарларда жашасын, ал эми бул шаарлар ар кайсы өлкөлөрдө жайгашсын. Андай учурда сактоо үчүн бизге үч таблица керек болот: колдонуучулар шаарлар менен, ал эми шаарлар - өлкөлөр менен байланышкан болот. Бул учурда бизге колдонуучуларды өлкөлөр менен байланыштыруучу талба керек болбойт - анткени колдонуучулар өзүнчө эле шаарлар менен өлкөлөрдүн ортосундагы байланыш аркылуу өлкөлөр менен байланышкан болот.
Келгиле, биздин таблицаларды карап көрөлү. Өлкөлөр таблицасы:
| id | name |
|---|---|
| 1 | country1 |
| 2 | country2 |
Шаарлар таблицасы:
| id | name | country_id |
|---|---|---|
| 1 | city1 | 1 |
| 2 | city2 | 1 |
| 3 | city3 | 2 |
Колдонуучулар таблицасы өзгөрбөй калат:
| id | name | city_id |
|---|---|---|
| 1 | user1 | 1 |
| 2 | user2 | 1 |
| 3 | user3 | 2 |
| 4 | user4 | 1 |
| 5 | user5 | 3 |
| 6 | user6 | 2 |
Сурамдар
Колдонуучуларды алардын шаарлары жана өлкөлөрү менен чогултуп алуу үчүн, биз эки JOIN аткарууга туура келет: биринчиси шаарларды колдонуучуларга кошот, ал эми экинчиси - өлкөлөрдү шаарларга кошот:
SELECT
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
Практикалык тапшырмалар
Товарлар белгилүү бир подкатегорияга таандык болсун, ал эми подкатегориялар белгилүү бир категорияга таандык болсун. Сақтоо түзүмүн сүрөттөгүлө.
Товарларды, алардын подкатегориялары жана категориялары менен чогултуп алуучу сурамды жазыңыз.
Подкатегорияларды алардын категориялары менен чогултуп алуучу сурамды жазыңыз.