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 JOIN
employees
ö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 ae1
é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