Articles

SQLite Self-Join

rezumat: în acest tutorial, veți afla despre un tip special de join numit SQLite self-join, care vă permite să se alăture de masă pentru a se.

rețineți că ar trebui să fie familiarizați cu INNER JOIN și LEFT JOIN clauze înainte de a merge mai departe cu acest tutorial.

Introducere în SQLite auto-join

auto-join este un tip special de se alătură care vă permit să se alăture un tabel pentru a se folosind fieLEFT JOIN sauINNER JOIN clauza. Utilizați self-join pentru a crea un set de rezultate care unește rândurile cu celelalte rânduri din același tabel.

deoarece nu puteți face referire la același tabel mai mult de unul dintr-o interogare, trebuie să utilizați un alias de tabel pentru a atribui tabelului un nume diferit atunci când utilizați auto-asociere.

self-join compară valorile coloanelor identice sau diferite din același tabel. Doar un singur tabel este implicat în auto-Alăturați-vă.

utilizați de multe ori self-join pentru a interoga relația părinți / copil stocate într-un tabel sau pentru a obține totaluri de funcționare.

SQLite self-join Exemple

vom folosiemployees tabelul din Baza de date eșantion pentru demonstrație.

tabelulemployees stochează nu numai datele angajaților, ci și datele organizaționale. ColoanaReportsTo specifică relația de raportare dintre angajați.

dacă un angajat raportează unui manager, valoarea coloaneiReportsTo a rândului angajatului este egală cu valoarea coloaneiEmployeeId a rândului managerului. În cazul în care un angajat nu raportează nimănui, coloana ReportsTo este NULL.

pentru a obține informații despre cine este raportul direct al cui, utilizați următoarea declarație:

încercați

instrucțiunea a folosit clauza INNER JOIN pentru a se alătura clauzei employees pentru sine. Tabelulemployees are două roluri: angajați și manageri.

deoarece am folosit clauzaINNER JOIN pentru a uni tabelulemployees la sine, setul de rezultate nu are rândul a cărui coloană manager conține o valoareNULL.

rețineți că operatorul de concatenare|| concatenează mai multe șiruri într-un singur șir. În exemplu, folosim operatorul de concatenare pentru a de la numele complet al angajaților prin concatenarea prenumelui, spațiului și prenumelui.

în cazul în care doriți să interogați CEO-ul care nu raportează nimănui, trebuie să schimbați clauza INNER JOIN în clauza LEFT JOIN din interogarea de mai sus.

Andrew Adams este CEO pentru că nu raportează pe nimeni.

puteți utiliza tehnica self-join pentru a găsi angajații aflați în același oraș cu următoarea interogare:

încercați

condiția join are două expresii:

  • e1.city = e2.city pentru a vă asigura că ambii angajați aflați în același oraș
  • e.firstname <> e2.firstname AND e1.lastname <> e2.lastname pentru a vă asigura că e1 și e2 nu sunt la fel angajat cu presupunerea că nu există angajați care au același nume și prenume.

în acest tutorial, v-am arătat cum să utilizați tehnica SQLite self-join pentru a vă alătura unui tabel.

  • a fost util acest tutorial ?
  • YesNo

Lasă un răspuns

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