Pythonda Bog'langan Jadvallar Zanjiri
Endi foydalanuvchilar ma'lum shaharlarda yashasin va bu shaharlar turli mamlakatlarda joylashgan bo'lsin. Bunday holatda saqlash uchun bizga uchta jadval kerak bo'ladi: foydalanuvchilar shaharlar bilan, shaharlar esa mamlakatlar bilan bog'lanadi. Bunda foydalanuvchilarni mamlakatlar bilan bog'lash uchun alohida maydon kerak bo'lmaydi - chunki foydalanuvchilar shaharlar va mamlakatlar orqali avtomatik ravishda mamlakatlar bilan bog'lanadi.
Keling, jadvallarimizga bir qaraylik. Mamlakatlar jadvali:
| id | name |
|---|---|
| 1 | country1 |
| 2 | country2 |
Shaharlar jadvali:
| id | name | country_id |
|---|---|---|
| 1 | city1 | 1 |
| 2 | city2 | 1 |
| 3 | city3 | 2 |
Foydalanuvchilar jadvali o'zgarishsiz qoladi:
| id | name | city_id |
|---|---|---|
| 1 | user1 | 1 |
| 2 | user2 | 1 |
| 3 | user3 | 2 |
| 4 | user4 | 1 |
| 5 | user5 | 3 |
| 6 | user6 | 2 |
So'rovlar
Foydalanuvchilarni ularning shaharlari va mamlakatlari bilan birga olish uchun bizga ikki ta join qilish kerak bo'ladi: birinchi join shaharlarni foydalanuvchilarga qo'shadi, ikkinchi join esa mamlakatlarni shaharlarga qo'shadi:
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
Amaliy vazifalar
Mahsulotlar ma'lum bir pastki kategoriyaga tegishli bo'lsin, pastki kategoriyalar esa ma'lum bir kategoriyaga tegishli bo'lsin. Saqlash strukturasi izohlang.
Mahsulotlarni ularning pastki kategoriyalari va kategoriyalari bilan birga olib keladigan so'rov yozing.
Pastki kategoriyalarni ularning kategoriyalari bilan birga olib keladigan so'rov yozing.