A MySQL sok parancsot tartalmaz, amelyekre szükség van egy adatbázis kezelése közben. Például gyakran meg kell szereznünk néhány adatot különböző táblázatokból, valamilyen feltétel alapján. A MySQL ezután különböző típusú csatlakozásokat biztosít a kívánt eredmények elérése érdekében. Tanuljuk meg a MySQL baloldali és jobb oldali csatlakozását.
Az SQL-ben nincs olyan utasítás, hogy FULL OUTER JOIN, de használhatunk egy egyszerű JOIN-t ugyanazon eredmények eléréséhez, vagy egyszerűen egy SELECT utasítás használatával két különböző táblázat felett.
Egyébként a MySQL biztosítja BAL CSATLAKOZÁS és JOBB CSATLAKOZÁS hogy a rekordokat vagy sorokat a jobb vagy a bal oldali táblázatból kapjuk meg. Próbálkozzunk néhány különböző példával, hogy megfelelő illesztésekkel érjük el a kívánt eredményt.
Példák
Mielőtt elkezdenénk megtanulni a BAL és JOBB CSATLAKOZÁS használatát. Megtanuljuk, hogyan lehet az összes adatot megszerezni mindkét táblából (akár általános, akár nem mindennapi) az egyszerű SELECT utasítással és a CROSS JOIN használatával a SELECT utasítással. Először próbáljuk meg megszerezni az összes adatot mindkét táblából a SELECT utasítással.
Például van 2 táblázat, amelyeket a szerző és a könyvek nevével kaptunk.
DESC könyvek;DESC szerzők;
Ha mindkét oszlopból meg akarjuk szerezni az összes oszlopot. A SELECT lekérdezést a következőképpen fogják használni:
SELECT * FROM könyvek, szerzők;
Mint láthatja, mindkét oszlopból minden oszlop megvan, még feltétel megadása nélkül is.
Ha a JOIN vagy a CROSS JOIN záradékot használjuk, mindkettő ugyanazokat az eredményeket hozza el. Például:
SELECT * FROM books JOIN szerzők;
Most próbáljuk meg a CROSS JOIN alkalmazást:
SELECT * FROM books CROSS JOIN szerzők;
Amint tanúja lehet, mindezek a lekérdezések ugyanazokat az eredményeket hozzák számunkra.
Azonban nem jó, ha az összes oszlop ilyen absztrakt formában van. Tehát, hogy a bal vagy a jobb oldali táblázatból néhány konkrét oszlopot kapjon, kétféleképpen folytathatja a műveletet; az egyik módja az, hogy oszlopneveket használjon SELECT utasításokkal vagy az igényeinek megfelelő összekapcsolásokkal.
Rendben, most lépjünk előre, hogy megértsük a BAL CSATLAKOZÁS és a JOBB CSATLAKOZÁST.
BAL CSATLAKOZÁS
Tegyük fel, hogy szeretnénk kapni néhány konkrét oszlopot, amelyek vagy a könyvek táblából származnak, vagy amelyek közösek a könyvek és a szerzők táblázat között, bizonyos feltételek alapján a feltételt valójában két különböző táblázat összehasonlításával biztosítják. Például két táblához, könyvhöz és szerzőhöz szeretnénk csatlakozni, ahol a könyv azonosítója megegyezik a szerző azonosítójával. Ilyen eredményre számíthatunk a LEFT Join with SELECT utasítás használatával; Válasszon lekérdezést az oszlopnevekkel, amelyeket meg szeretne szerezni a könyvek táblából vagy a szerzőktől. A SELECT lekérdezés a BAL JOIN és feltétellel a következő lenne:
SELECT könyvek.könyvnév, könyvek.book_id, szerzők.szerző_azonosító,szerzői.szerző_név, szerzők.szerző_név
Könyvektől
LEFT JOIN szerzők
ON könyvek.book_id = szerzők.szerző_azonosító;
Mivel megemlítettük a könyvtáblát a bal oldalon, a csatlakozás megkapja az egyik sor azonosítóját a könyvtáblából, és ugyanazt az azonosítószámot keresi a szerző táblázatában. Ha ugyanazt az azonosító számot találja meg, akkor a szerző táblázatának adott oszlopai is megjelennek. Ellenkező esetben a NULL felirat jelenik meg a szerző táblázatának oszlopaiban. Végezzük el ezt a lekérdezést, és tegyük tanúi az eredményeket.
Amint láthatja, mindkét táblázatból megvan a sor, ahol a könyvek táblázat azonosítója megegyezik a szerző táblázat azonosítójával. Az utolsó sorban azt is láthatjuk, hogy a szerző táblázatában nincs 4 azonosítószám, ezért NULL-t adott vissza ellene.
JOBB CSATLAKOZÁS
Hasonlóképpen, ha valamilyen adatot szeretnénk megszerezni, akár a szerző táblázatából, akár a könyvek és a szerző táblája között, bizonyos feltételek alapján, akkor a RIGHT join és SELECT záradék használatával ilyen eredményekre lehet számítani. A SELECT lekérdezés a RIGHT JOIN és feltétel mellett a következő lenne:
SELECT könyvek.könyvnév, könyvek.book_id, szerzők.szerző_azonosító,szerzői.szerző_név, szerzők.szerző_név
Könyvektől
RIGHT JOIN szerzők
ON könyvek.book_id = szerzők.szerző_azonosító;
Ezúttal tudjuk, hogy a szerzők táblázata a jobb oldalon van, így a csatlakozás megkapja a szerző táblázatának egy sorának azonosítóját, és ugyanazt az azonosító számot keresi a könyv táblázatában. Ha ugyanazt az azonosító számot találja, akkor a könyv táblázat megadott oszlopait jeleníti meg. A lekérdezés végrehajtása a következőket eredményezi:
Mint láthatja, mindkét táblázatból megvan a sor, ahol a szerző azonosítója megegyezik a könyv azonosítójával. Tudjuk, hogy a könyvtáblázatban volt egy negyedik könyv, bár nem kaptuk meg, ennek oka a JOBB CSATLAKOZÁS.
Tehát valóban így működik a BAL CSATLAKOZÁS és a JOBB CSATLAKOZÁS.
Következtetés
Megtanultuk és megértettük a CROSS, BAL és JOBB CSATLAKOZÁST, valamint megtanultuk használni őket a kívánt eredmények elérése érdekében a MySQL-ben. Kipróbáltunk néhány különféle példát is a JOINS-ra, hogy jobban és mélyebben megértsük a fogalmakat. Tehát látogasson tovább honlapunkra linuxhint.com az ilyen hasznos tartalmakért.