Python හි සම්බන්ධිත වගු දාමය

දැන් භාවිතා කරන්නන් නිශ්චිත නගරවල ජීවත් වන බවත්, මෙම නගර විවිධ රටවල පිහිටා ඇති බවත් සිතන්න. එවැනි අවස්ථාවකදී, ගබඩා කිරීම සඳහා අපට වගු තුනක් අවශ්‍ය වනු ඇත: භාවිතා කරන්නන් නගර සමඟ සම්බන්ධ වනු ඇත, තවද නගර රටවල් සමඟ සම්බන්ධ වනු ඇත. මෙහිදී අපට භාවිතා කරන්නන් රටවල් සමඟ සම්බන්ධ කරන ක්ෂේත්‍රයක් අවශ්‍ය නොවනු ඇත - භාවිතා කරන්නන් ඕනෑම ආකාරයකින් නගර සහ රටවල් අතර සම්බන්ධතාවය හරහා රටවල් සමඟ සම්බන්ධ වනු ඇත.

අපගේ වගු දෙස බලමු. රටවල් සහිත වගුව:

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

උපවර්ග ඒවායේ වර්ග සමඟ එකට ලබා ගන්නා විමසුමක් ලියන්න.