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:
| id | name |
|---|---|
| 1 | country1 |
| 2 | country2 |
Die tabel met stede:
| id | name | country_id |
|---|---|---|
| 1 | city1 | 1 |
| 2 | city2 | 1 |
| 3 | city3 | 2 |
Die tabel met gebruikers bly onveranderd:
| 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:
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
Praktiese Take
Laat ons aanneem dat produkte tot 'n sekere subkategorie behoort, en subkategorieë behoort tot 'n sekere kategorie. Beskryf die stoorstruktuur.
Skryf 'n navraag wat produkte sal uithaal, saam met hul subkategorieë en kategorieë.
Skryf 'n navraag wat subkategorieë sal uithaal saam met hul kategorieë.