PostgreSQL LEFT JOIN (Română)

rezumat: în acest tutorial, veți învăța cum să utilizați Clauza PostgreSQL LEFT JOIN pentru a selecta date din mai multe tabele.

Introducere în PostgreSQL STÂNGA se ALĂTURE clauza

să Presupunem că aveți două tabele: A și B.,

Fiecare rând din tabel A poate avea zero sau mai multe rândurile corespunzătoare din tabelul B în timp ce fiecare rând din tabel B are doar un singur rând corespunzătoare în tabelul A .

Pentru a selecta datele din tabelul A care poate sau nu poate avea rândurile corespunzătoare din tabelul B , utilizați LEFT JOIN clauză.,

următoarea afirmație ilustrează LEFT JOIN sintaxa care se alătură la masă A cu masa B :

Code language: SQL (Structured Query Language) (sql)

Să se alăture masa A cu masa B tabel folosind-o la stânga se alăture, urmați acești pași:

  • în Primul rând, specifica coloanele în ambele tabele din care doriți să selectați datele din SELECT clauză.
  • în al Doilea rând, specifica stânga (tabelul A) în FROM clauză.,
  • al Treilea, specifica dreptul de tabel (tabelul B) în LEFT JOIN clauză și condiția alătura după ON cuvinte cheie.

clauzaLEFT JOIN începe selectarea datelor din tabelul din stânga. Pentru fiecare rând din tabelul din stânga, compară valoarea din coloana pkacu valoarea fiecărui rând din coloana fka din tabelul din dreapta.,

dacă aceste valori sunt egale, clauza de Asociere din stânga creează un rând nou care conține coloane care apar în clauza SELECT și adaugă acest rând la setul de rezultate.

În cazul în care aceste valori nu sunt egale, clauza de Asociere din stânga creează, de asemenea, un rând nou care conține coloane care apar în clauza SELECT. În plus, umple coloanele care provin din tabelul din dreapta cu NULL.,

următoarea diagramă Venn ilustrează modul în care LEFT JOIN clauza de lucrări:

Rețineți că LEFT JOIN este, de asemenea, menționată ca LEFT OUTER JOIN.

PostgreSQL STÂNGA se ALĂTURE exemple

Să ne uităm la următoarele film și inventory tabele din baza de date eșantion.,

Fiecare rând în film tabel poate avea zero sau mai multe rânduri în inventorymasă. Fiecare rând din tabelul inventoryare un singur rând în tabelulfilm.

film_id coloană se stabilește legătura dintre film și inventory tabele.,

următoarea declarație foloseste LEFT JOIN clauză să se alăture film tabel cu inventorytabel:

atunci Când un rând de film masa nu au o potrivire rând în inventorymasă, valoarea inventory_id coloană a acestui rând este NULL.,

următoarea instrucțiune adaugă o clauză WHERE pentru a găsi filmele care nu sunt în inventar:

următoarea instrucțiune returnează același rezultat., Diferența este că acesta utilizează tabelul de alias-uri pentru a face interogare mai concis:

Dacă ambele tabele au același nume de coloană utilizate în ON clauza, puteți folosi USING sintaxa de genul asta:

Această tehnică este utilă atunci când doriți să selectați rânduri dintr-un tabel care nu au rânduri de potrivire într-un alt tabel.

Lasă un răspuns

Adresa ta de email nu va fi publicată. Câmpurile obligatorii sunt marcate cu *

Sari la bara de unelte