⊗ppPmDOChLT 383 of 447 menu

Lingitud tabelite ahel

Oletame nüüd, et kasutajad elavad kindlates linnades, ja need linnad asuvad erinevates riikides. Sellisel juhul vajame salvestamiseks juba kolme tabelit: kasutajad on seotud linnadega, ja linnad on seotud riikidega. Samas ei pea meil olema kasutajate ja riikide vahelist seosevälja - sest kasutajad on niikuinii seotud riikidega läbi linnade ja riikide vahelise seose.

Vaatame meie tabeleid. Tabel riikidega:

countries
id name
1 country1
2 country2

Tabel linnadega:

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

Tabel kasutajatega jääb muutumatuks:

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

Päringud

Selleks, et saada kasutajad koos nende linnade ja riikidega, peame tegema kaks ühendust (JOIN): esimene ühendab linnad kasutajatega, ja teine ühendab riigid linnadega:

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

Praktilised ülesanded

Oletame, et tooted kuuluvad kindlasse alamkategooriasse, ja alamkategooriad kuuluvad kindlasse kategooriasse. Kirjeldage salvestusstruktuur.

Kirjutage päring, mis toob tooted, koos nende alamkategooriate ja kategooriatega.

Kirjutage päring, mis toob alamkategooriad koos nende kategooriatega.

Eesti
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Me kasutame saidi toimimiseks, analüüsi ja personaliseerimiseks küpsiseid. Andmete töötlemine toimub vastavalt Privaatsuspoliitikale.
nõustu kõigega häälesta keeldu