Articles

SQLite Self-Join

összefoglaló: ebben a bemutatóban megismerheti az SQLite self-join nevű speciális típusú csatlakozást, amely lehetővé teszi, hogy csatlakozzon a táblázathoz.

vegye figyelembe, hogy ismernie kell aINNER JOIN ésLEFT JOIN záradékokat, mielőtt tovább folytatná ezt a bemutatót.

Bevezetés az SQLite self-join

az öncsatlakozás egy speciális típusú csatlakozás, amely lehetővé teszi, hogy csatlakozzon egy asztalhoz a LEFT JOIN vagy INNER JOIN záradék. A self-join használatával olyan eredményhalmazt hozhat létre, amely a sorokhoz csatlakozik az ugyanazon táblázatban szereplő többi sorhoz.

mivel nem hivatkozhat ugyanarra a táblára egynél több lekérdezésben, a táblázat alias használatával más nevet kell hozzárendelnie a táblázathoz, amikor öncsatlakozást használ.

az öncsatlakozás összehasonlítja az azonos vagy különböző oszlopok értékeit ugyanabban a táblázatban. Csak egy asztal vesz részt az öncsatlakozásban.

gyakran használja az öncsatlakozást a táblázatban tárolt szülők/gyermekek kapcsolatának lekérdezéséhez vagy a futó összegek megszerzéséhez.

SQLite self-join példák

fogjuk használni a employees táblázat a minta adatbázis demonstrációs.

a employees a táblázat nemcsak a munkavállalói adatokat, hanem a szervezeti adatokat is tárolja. AReportsTo oszlop meghatározza az alkalmazottak közötti jelentési kapcsolatot.

Ha egy alkalmazott jelentést tesz egy menedzsernek, a ReportsTo oszlop értéke megegyezik a menedzser sorának EmployeeId oszlopának értékével. Abban az esetben, ha a munkavállaló nem jelent senkinek, a ReportsTo oszlop NULL.

ahhoz, hogy információt kapjon arról, hogy ki a közvetlen jelentés, a következő nyilatkozatot használja:

próbálja ki

a INNER JOINemployees önmagának. Aemployees táblának két szerepe van: alkalmazottak és vezetők.

mivel aINNER JOIN záradékot használtuk aemployees táblázathoz való csatlakozáshoz, az eredményhalmaz nem rendelkezik azzal a sorral, amelynek kezelőoszlopaNULL értéket tartalmaz.

vegye figyelembe, hogy a || concatenates több karakterláncot egyetlen karakterláncba. A példában a konkatenációs operátort használjuk az alkalmazottak teljes nevéből a keresztnév, a hely és a vezetéknév összefűzésével.

abban az esetben, ha lekérdezni szeretné a vezérigazgatót, aki nem jelent senkinek, meg kell változtatnia a INNER JOIN záradékot a LEFT JOIN záradékra a fenti lekérdezésben.

Andrew Adams A vezérigazgató, mert nem jelent senkit.

használhatja az öncsatlakozási technikát, hogy megtalálja az alkalmazottakat ugyanabban a városban, mint a következő lekérdezés:

próbálja ki

a csatlakozási feltételnek két kifejezése van:

  • e1.city = e2.city annak biztosítása érdekében, hogy mindkét alkalmazott ugyanabban a városban található
  • e.firstname <> e2.firstname AND e1.lastname <> e2.lastname annak biztosítása érdekében, hogy a e1 és nem azonos alkalmazott azzal a feltételezéssel, hogy nincsenek olyan alkalmazottak, akiknek azonos keresztnevük és vezetéknevük van.

ebben a bemutatóban megmutattuk, hogyan kell használni az SQLite öncsatlakozási technikát, hogy csatlakozzon egy asztalhoz.

  • hasznos volt ez a bemutató ?
  • YesNo

Vélemény, hozzászólás?

Az e-mail-címet nem tesszük közzé. A kötelező mezőket * karakterrel jelöltük