पायथन में संबंधित तालिकाओं की श्रृंखला

अब मान लीजिए कि उपयोगकर्ता विशिष्ट शहरों में रहते हैं, और ये शहर विभिन्न देशों में स्थित हैं। ऐसे मामले में भंडारण के लिए हमें तीन तालिकाओं की आवश्यकता होगी: उपयोगकर्ता शहरों से जुड़े होंगे, और शहर देशों से जुड़े होंगे। इस स्थिति में हमें उपयोगकर्ताओं को देशों से जोड़ने वाले फ़ील्ड की आवश्यकता नहीं होगी - क्योंकि उपयोगकर्ता पहले से ही शहरों और देशों के बीच संबंध के माध्यम से देशों से जुड़े होंगे।

आइए हमारी तालिकाओं पर एक नज़र डालें। देशों वाली तालिका:

countries
id name
1 country1
2 country2

शहरों वाली तालिका:

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

उपयोगकर्ताओं वाली तालिका अपरिवर्तित रहेगी:

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

क्वेरीज़

उपयोगकर्ताओं को उनके शहरों और देशों के साथ प्राप्त करने के लिए, हमें दो जॉइन करने होंगे: पहला उपयोगकर्ताओं से शहरों को जोड़ेगा, और दूसरा शहरों से देशों को जोड़ेगा:

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

व्यावहारिक कार्य

Задание 1

मान लीजिए कि उत्पाद किसी विशिष्ट उपश्रेणी से संबंधित हैं, और उपश्रेणियाँ किसी विशिष्ट श्रेणी से संबंधित हैं। भंडारण संरचना का वर्णन करें।

Задание 2

एक क्वेरी लिखें जो उत्पादों को उनकी उपश्रेणियों और श्रेणियों के साथ प्राप्त करे।

Задание 3

एक क्वेरी लिखें जो उपश्रेणियों को उनकी श्रेणियों के साथ प्राप्त करे।