Articles

SQLite Self-Join

Podsumowanie: w tym samouczku dowiesz się o specjalnym typie łączenia o nazwie SQLite self-join, który pozwala na łączenie tabeli do siebie.

pamiętaj, że powinieneś zapoznać się z klauzulamiINNER JOIN ILEFT JOIN przed kontynuowaniem tego kursu.

Wprowadzenie do SQLite self-join

self-join jest specjalnym rodzajem złączeń, które pozwalają na dołączenie tabeli do siebie za pomocąLEFT JOIN lubINNER JOIN klauzuli. Funkcja self-join umożliwia utworzenie zestawu wyników, który łączy wiersze z innymi wierszami w tej samej tabeli.

ponieważ w zapytaniu nie można odwoływać się do tej samej tabeli więcej niż do jednej, należy użyć aliasu tabeli, aby przypisać jej inną nazwę podczas korzystania z funkcji self-join.

self-join porównuje wartości tych samych lub różnych kolumn w tej samej tabeli. Tylko jeden stół jest zaangażowany w self-join.

często używasz funkcji self-join do odpytywania relacji rodzice / dziecko przechowywanych w tabeli lub do uzyskiwania bieżących wartości.

SQLite self-join przykłady

użyjemyemployees tabeli w przykładowej bazie danych do demonstracji.

tabelaemployees przechowuje nie tylko dane pracowników, ale także dane organizacyjne. KolumnaReportsTo określa relację raportowania między pracownikami.

jeśli pracownik zgłasza się do menedżera, wartośćReportsTo kolumny wiersza pracownika jest równa wartościEmployeeId kolumny wiersza menedżera. W przypadku, gdy pracownik nie zgłasza się do nikogo, kolumna ReportsTo to NULL.

aby uzyskać informacje o tym, kto jest bezpośrednim raportem, użyj następującego oświadczenia:

Wypróbuj

Instrukcja użyła INNER JOIN klauzuli, aby dołączyć do employees do siebie. employees tabela ma dwie role: pracowników i menedżerów.

ponieważ użyliśmy klauzuliINNER JOIN, aby dołączyć do tabeliemployees, zestaw wyników nie ma wiersza, którego kolumna manager zawiera wartośćNULL.

Należy zauważyć, że operator konkatenacji|| łączy wiele łańcuchów w jeden łańcuch. W przykładzie używamy operatora konkatenacji do od pełnych nazwisk pracowników poprzez połączenie imienia, spacji i nazwiska.

w przypadku, gdy chcesz zapytać prezesa, który nie zgłasza się do nikogo, musisz zmienić klauzulęINNER JOIN naLEFT JOIN w powyższym zapytaniu.

Andrew Adams jest prezesem, ponieważ nikogo nie zgłasza.

możesz użyć techniki samodzielnego łączenia, aby znaleźć pracowników znajdujących się w tym samym mieście, co następujące zapytanie:

Wypróbuj

warunek łączenia ma dwa wyrażenia:

  • e1.city = e2.city aby upewnić się, że obaj pracownicy znajdują się w tym samym mieście
  • e.firstname <> e2.firstname AND e1.lastname <> e2.lastname aby upewnić się, że e1 I e2 nie są takie same pracownik z założeniem, że nie ma pracowników, którzy mają to samo imię i nazwisko.

w tym samouczku pokazaliśmy, jak korzystać z techniki SQLite self-join, aby dołączyć tabelę do siebie.

  • czy ten tutorial był pomocny ?
  • YesNo

Dodaj komentarz

Twój adres e-mail nie zostanie opublikowany. Wymagane pola są oznaczone *