SQL LEFT JOIN (Română)
rezumat: în acest tutorial, vă vom prezenta un alt tip de Join-uri numite SQL LEFT JOIN care vă permite să preluați date din mai multe tabele.
Introducere în clauza SQL LEFT JOIN
în tutorialul anterior, ați aflat despre join-ul interior care returnează rânduri dacă există cel puțin un rând în ambele tabele care se potrivește cu condiția join. Clauza de îmbinare interioară elimină rândurile care nu se potrivesc cu un rând al celuilalt tabel.,
cu toate acestea, combinația din stânga returnează toate rândurile din tabelul din stânga, indiferent dacă există sau nu un rând de potrivire în tabelul din dreapta.să presupunem că avem două tabele A și B. tabelul A are patru rânduri 1, 2, 3 și 4. Tabelul B are, de asemenea, patru rânduri 3, 4, 5, 6.
când alăturăm tabelul A cu tabelul B, toate rândurile din tabelul A (tabelul din stânga) sunt incluse în setul de rezultate dacă există un rând de potrivire în tabelul B sau nu.
În SQL, vom folosi următoarea sintaxă să se alăture masa O cu tabelul B.,
clauza de Asociere din stânga apare după clauza FROM. Starea care urmează PE cuvinte cheie este numit join condiție B.n = A.n
SQL STÂNGA se ALĂTURE exemple
SQL STÂNGA se ALĂTURE două tabele exemple
Să aruncăm o privire la countries
și locations
tabele.
Fiecare locație aparține unul și numai o singură țară, în timp ce fiecare țară poate avea zero sau mai multe locații., Relația dintre tabelele de țări și locații este una-la-multe.
coloana country_id din tabelul locații este cheia străină care se leagă de coloana country_id din tabelul țări.
pentru a interoga numele țărilor din SUA, Marea Britanie și China, utilizați următoarea declarație.,0bc”>
– l Văd în acțiune
următoarea interogare preia locații situate în SUA, marea BRITANIE și China:
– l Văd în acțiune
Acum, vom folosi STÂNGA se ALĂTURE clauza de a se alătura țărilor masă cu locații masa ca următoarea interogare:
– l Văd în acțiune
condiția din clauza where este aplicată astfel încât enunțul doar preia datele din SUA, marea BRITANIE și China rânduri.,
deoarece folosim clauza de Asociere din stânga, toate rândurile care îndeplinesc condiția din clauza WHERE din tabelul țări sunt incluse în setul de rezultate.
pentru fiecare rând din tabelul țări, clauza de Asociere din stânga găsește rândurile care se potrivesc în tabelul locații.
Dacă se găsește cel puțin un rând de potrivire, motorul bazei de date combină datele din coloanele rândurilor de potrivire din ambele tabele.
În cazul în care nu se găsește niciun rând de potrivire, de exemplu, cu country_id CN, rândul din tabelul țări este inclus în setul de rezultate, iar rândul din tabelul locații este umplut cu valori nule.,
deoarece rândurile care nu se potrivesc în tabelul din dreapta sunt umplute cu valorile nule, puteți aplica clauza de Asociere din stânga la rândurile care nu se potrivesc între mese.
De exemplu, pentru a găsi o țară care nu are locații în locații masă, puteți folosi următoarea interogare:
– l Văd în acțiune
SQL PLECAT să se ALĂTURE 3 mese exemplu
a se Vedea tabelele următoare: regiuni, țări, și locații.,
într-O regiune poate avea zero sau mai multe țări, în timp ce fiecare țară este situat într-o regiune. Relația dintre tabele țări și regiuni este una-la-multe. Coloana region_id din tabelul țări este legătura dintre tabelul țări și regiuni.,
următoarea declarație demonstrează cum să se alăture 3 tabele: regiuni, țări și locații:
– l Văd în acțiune
Acum ar trebui să aveți o bună înțelegere a modului în SQL STÂNGA se ALĂTURE clauză funcționează și știu cum să se aplice STÂNGA se ALĂTURE clauza de interogare a datelor din mai multe tabele.
- a fost acest tutorial util ?
- YesNo