Articles

SQLite Self-Join

samenvatting: in deze tutorial leert u over een speciaal type join genaamd SQLite self-join waarmee u een tabel aan zichzelf kunt verbinden.

merk op dat u bekend moet zijn met INNER JOIN en LEFT JOIN voordat u verder gaat met deze tutorial.

Inleiding tot SQLite self-join

De self-join is een speciaal soort joins waarmee u een tabel aan zichzelf kunt koppelen met behulp van LEFT JOIN of INNER JOIN clausule. U gebruikt self-join om een resultaatset te maken die de rijen verbindt met de andere rijen binnen dezelfde tabel.

omdat u in een query niet meer dan één tabel naar dezelfde tabel kunt verwijzen, moet u een tabelalias gebruiken om de tabel een andere naam toe te wijzen wanneer u self-join gebruikt.

De self-join vergelijkt waarden van dezelfde of verschillende kolommen in dezelfde tabel. Slechts één tabel is betrokken bij de self-join.

u gebruikt vaak zelf-join om de relatie ouders/Kind opgeslagen in een tabel te bevragen of om lopende totalen te verkrijgen.

SQLite self-join examples

We zullen de employees tabel gebruiken in de voorbeelddatabase voor demonstratie.

de employees de tabel slaat niet alleen personeelsgegevens op, maar ook organisatorische gegevens. De kolom ReportsTo geeft de rapportagerelatie tussen werknemers aan.

als een werknemer rapporteert aan een manager, is de waarde van de kolom ReportsTo van de rij van de werknemer gelijk aan de waarde van de kolom EmployeeId van de rij van de manager. Indien een werknemer aan niemand rapporteert, is de kolom ReportsToNULL.

om de informatie te krijgen over wie het directe rapport van wie is, gebruikt u de volgende verklaring:

probeer het

het statement gebruikte de INNER JOIN clausule om de employees aan zichzelf toe te voegen. De tabel employees heeft twee rollen: werknemers en managers.

omdat we de INNER JOIN clausule hebben gebruikt om de employees tabel aan zichzelf toe te voegen, heeft de resultaatset niet de rij waarvan de manager kolom een NULL waarde bevat.

merk op dat de concatenatie-operator || meerdere strings samenvoegt tot één string. In het voorbeeld gebruiken we de concatenation operator van de volledige namen van de werknemers door de voornaam, spatie en achternaam samen te voegen.

in het geval u de CEO wilt opvragen die aan niemand rapporteert, moet u de INNER JOIN clausule wijzigen in LEFT JOIN clausule in de zoekopdracht hierboven.

Andrew Adams is de CEO omdat hij niemand rapporteert.

u kunt de self-join-techniek gebruiken om de werknemers in dezelfde stad te vinden als de volgende zoekopdracht:

probeer het

De join-voorwaarde heeft twee expressies:

  • e1.city = e2.city om ervoor te zorgen dat beide werknemers in dezelfde stad
  • e.firstname <> e2.firstname AND e1.lastname <> e2.lastname om ervoor te zorgen dat e1 en e2 niet dezelfde werknemer zijn met de aanname dat er zijn geen werknemers die dezelfde voor-en achternaam hebben.

in deze tutorial hebben we u laten zien hoe u de SQLite self-join techniek kunt gebruiken om een tabel aan zichzelf te koppelen.

  • Was deze tutorial nuttig ?
  • YesNo

Geef een antwoord

Het e-mailadres wordt niet gepubliceerd. Vereiste velden zijn gemarkeerd met *