Kettings van Verbonde Tabelle in Python

Laat ons nou aanneem dat gebruikers in sekere stede woon, en hierdie stede is in verskillende lande geleë. In so 'n geval sal ons drie tabelle benodig om data te stoor: gebruikers sal met stede verbind word, en stede - met lande. Ons sal nie 'n veld nodig hê om gebruikers direk met lande te verbind nie - aangesien gebruikers reeds met lande verbind sal word deur die verbinding tussen stede en lande.

Kom ons kyk na ons tabelle. Die tabel met lande:

countries
id name
1 country1
2 country2

Die tabel met stede:

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

Die tabel met gebruikers bly onveranderd:

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

Navrae

Om gebruikers saam met hul stede en lande te kry, sal ons twee joins moet doen: die eerste sal stede by gebruikers voeg, en die tweede - lande by stede:

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

Praktiese Take

Задание 1

Laat ons aanneem dat produkte tot 'n sekere subkategorie behoort, en subkategorieë behoort tot 'n sekere kategorie. Beskryf die stoorstruktuur.

Задание 2

Skryf 'n navraag wat produkte sal uithaal, saam met hul subkategorieë en kategorieë.

Задание 3

Skryf 'n navraag wat subkategorieë sal uithaal saam met hul kategorieë.