Mnyororo wa Meza Zilizounganishwa
Hebu sasa watumiaji wakaee katika majiji fulani, na majiji hayo yako katika nchi tofauti. Katika hali kama hii, kuhifadhi hitatuhitaji meza tatu: watumiaji wataunganishwa na majiji, na majiji yataunganishwa na nchi. Wakati huo huo hatitahitaji sehemu ya kuunganisha watumiaji na nchi - kwa sababu watumiaji tayari wataunganishwa na nchi kupitia muunganisho wa majiji na nchi.
Tuangalie meza zetu. Meza ya nchi:
| id | name |
|---|---|
| 1 | country1 |
| 2 | country2 |
Meza ya majiji:
| id | name | country_id |
|---|---|---|
| 1 | city1 | 1 |
| 2 | city2 | 1 |
| 3 | city3 | 2 |
Meza ya watumiaji itabaki bila kubadilika:
| id | name | city_id |
|---|---|---|
| 1 | user1 | 1 |
| 2 | user2 | 1 |
| 3 | user3 | 2 |
| 4 | user4 | 1 |
| 5 | user5 | 3 |
| 6 | user6 | 2 |
Maswali
Ili kuwatoa watumiaji pamoja na majiji yao na nchi, italazimika kufanya viunganisho viwili: kimoja kitajiunga majiji kwa watumiaji, na kingine - nchi kwa majiji:
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
Kazi za Vitendo
Hebu bidhaa zakuwa za kikundi ndogo fulani, na vikundi vidogo vikuwe vya kategoria fulani. Eleza muundo wa uhifadhi.
Andika swali, litakalotoa bidhaa, pamoja na vikundi vidogo vyake na kategoria.
Andika swali, litakalotoa vikundi vidogo pamoja na kategoria zake.