पायथन में संबंधित तालिकाओं की श्रृंखला
अब मान लीजिए कि उपयोगकर्ता विशिष्ट शहरों में रहते हैं, और ये शहर विभिन्न देशों में स्थित हैं। ऐसे मामले में भंडारण के लिए हमें तीन तालिकाओं की आवश्यकता होगी: उपयोगकर्ता शहरों से जुड़े होंगे, और शहर देशों से जुड़े होंगे। इस स्थिति में हमें उपयोगकर्ताओं को देशों से जोड़ने वाले फ़ील्ड की आवश्यकता नहीं होगी - क्योंकि उपयोगकर्ता पहले से ही शहरों और देशों के बीच संबंध के माध्यम से देशों से जुड़े होंगे।
आइए हमारी तालिकाओं पर एक नज़र डालें। देशों वाली तालिका:
| 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 |
क्वेरीज़
उपयोगकर्ताओं को उनके शहरों और देशों के साथ प्राप्त करने के लिए, हमें दो जॉइन करने होंगे: पहला उपयोगकर्ताओं से शहरों को जोड़ेगा, और दूसरा शहरों से देशों को जोड़ेगा:
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
व्यावहारिक कार्य
मान लीजिए कि उत्पाद किसी विशिष्ट उपश्रेणी से संबंधित हैं, और उपश्रेणियाँ किसी विशिष्ट श्रेणी से संबंधित हैं। भंडारण संरचना का वर्णन करें।
एक क्वेरी लिखें जो उत्पादों को उनकी उपश्रेणियों और श्रेणियों के साथ प्राप्त करे।
एक क्वेरी लिखें जो उपश्रेणियों को उनकी श्रेणियों के साथ प्राप्त करे।