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 |
විමසුම්
භාවිතා කරන්නන් ඔවුන්ගේ නගර සහ රටවල් සමඟ එකට ලබා ගැනීමට, අපට ඩ්ජොයින් දෙකක් කිරීමට සිදුවනු ඇත: පළමුවැන්න භාවිතා කරන්නන්ට නගර සම්බන්ධ කරන අතර, දෙවැන්න නගරවලට රටවල් සම්බන්ධ කරයි:
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
ප්රායෝගික කාර්යයන්
නිෂ්පාදන නිශ්චිත උපවර්ගයකට අයත් වන අතර, උපවර්ග නිශ්චිත වර්ගයකට අයත් වේ යැයි සිතන්න. ගබඩා කිරීමේ ව්යුහය විස්තර කරන්න.
නිෂ්පාදන, ඒවායේ උපවර්ග සහ වර්ග සමඟ එකට ලබා ගන්නා විමසුමක් ලියන්න.
උපවර්ග ඒවායේ වර්ග සමඟ එකට ලබා ගන්නා විමසුමක් ලියන්න.