MySQL MariaDB

Vnější připojení MySQL

Vnější připojení MySQL

MySQL poskytuje spoustu příkazů, které jsou potřebné při správě databáze. Například často potřebujeme získat některá data z různých tabulek na základě nějaké podmínky. MySQL pak poskytuje různé typy spojení, aby bylo dosaženo požadovaných výsledků. Naučme se LEFT JOIN A RIGHT JOIN z MySQL.

V SQL neexistuje žádný takový příkaz jako FULL OUTER JOIN, ale k získání stejných výsledků můžeme použít jednoduchý JOIN nebo jednoduše použít příkaz SELECT přes dvě různé tabulky.

Jinak MySQL poskytuje VLEVO SE PŘIPOJTE a SPRÁVNĚ SE PŘIPOJTE získat záznamy nebo řádky z pravé nebo levé tabulky. Zkusme několik různých příkladů, abychom získali vhodné výsledky pomocí vhodných spojení.

Příklady

Než se začneme učit používání LEFT a RIGHT JOIN. Naučíme se, jak získat všechna data z obou tabulek (běžných i neobvyklých) pomocí jednoduchého příkazu SELECT a pomocí CROSS JOIN s příkazem SELECT. Nejprve se pokusíme získat všechna data z obou tabulek pomocí příkazu SELECT.

Například existují 2 tabulky, které jsme dostali podle jména autora a knih.

Knihy DESC;

Autoři DESC;

Pokud chceme získat všechny sloupce z obou tabulek. Dotaz SELECT bude použit takto:

VYBRAT * Z knih, autorů;

Jak vidíte, máme všechny sloupce z obou tabulek, aniž bychom poskytli podmínku.

Pokud použijeme klauzuli JOIN nebo CROSS JOIN, oba nám přinesou stejné výsledky. Například:

VYBERTE * Z KNÍH PŘIPOJTE se k autorům;

Nyní zkusme použít CROSS JOIN:

VYBERTE * Z KNÍŽEK CROSS JOIN autoři;

Jak můžete vidět, všechny tyto dotazy nám přinášejí stejné výsledky.

Není však dobré mít všechny sloupce v takové abstraktní podobě. Chcete-li tedy získat několik konkrétních sloupců z levé nebo pravé tabulky, můžete postupovat dvěma způsoby; jedním ze způsobů je, že používáte názvy sloupců pomocí příkazů SELECT nebo pomocí spojení, která vyhovují vašemu požadavku.

Dobře, teď pojďme kupředu, abychom porozuměli LEVÉMU PŘIPOJENÍ a SPRÁVNÉMU PŘIPOJENÍ.

VLEVO SE PŘIPOJTE

Předpokládejme, že chceme získat některé konkrétní sloupce, které jsou buď z tabulky knih, nebo běžné mezi tabulkami knih a autorů, na základě nějaké podmínky je podmínka skutečně poskytnuta porovnáním dvou různých tabulek. Například chceme spojit dvě tabulky, knihy a autory, kde se ID knihy rovná ID autora. Můžeme očekávat takový výsledek pomocí příkazu LEFT Join with SELECT; Vyberte dotaz s názvy sloupců, které chcete získat z tabulky knih nebo od autorů. Dotaz SELECT s LEFT JOIN a podmínkou by vypadal takto:

VYBRAT knihy.název_knihy, knihy.book_id, autoři.autor_id,
autoři.author_fname, autoři.author_lname
Z knih
LEFT JOIN autoři
NA knihy.book_id = autoři.autor_id;

Jelikož jsme zmínili tabulku knih na levé straně, spojení získá ID jednoho řádku z tabulky knih a hledá stejné ID číslo v tabulce autora. Pokud najde stejné identifikační číslo, zobrazí také dané sloupce z autorské tabulky. V opačném případě se ve sloupcích autorské tabulky zobrazí NULL. Provedeme tento dotaz a budeme svědky výsledků.

Jak vidíte, máme řádky z obou tabulek, kde se ID tabulky knih rovná ID tabulky autora. V posledním řádku také vidíme, že v tabulce autora není ID číslo 4, takže proti němu vrátil NULL.

SPRÁVNĚ SE PŘIPOJTE

Podobně, pokud chceme na základě určitých podmínek získat některá data, ať už z autorské tabulky nebo společná mezi knihami a autorskou tabulkou, lze tento druh výsledků očekávat pomocí klauzule RIGHT join a SELECT. Dotaz SELECT s RIGHT JOIN a podmínkou by vypadal takto:

VYBRAT knihy.název_knihy, knihy.book_id, autoři.autor_id,
autoři.author_fname, autoři.author_lname
Z knih
SPRÁVNÍ PŘIPOJTE se k autorům
NA knihy.book_id = autoři.autor_id;

Tentokrát víme, že tabulka autorů je na pravé straně, takže spojení získá ID jednoho řádku z tabulky autora a hledá stejné ID číslo v tabulce knihy. Pokud najde stejné identifikační číslo, zobrazí dané sloupce z tabulky knih. Provedení dotazu by mělo za následek toto:

Jak vidíte, máme řádky z obou tabulek, kde se ID autora rovná ID knihy. Víme, že v tabulce knih byla čtvrtá kniha, i když jsme ji nedostali, je to kvůli SPRÁVNÉMU PŘIPOJENÍ.

Takto tedy skutečně funguje LEFT JOIN a RIGHT JOIN.

Závěr

Naučili jsme se porozumět CROSS, LEFT a RIGHT JOIN a naučili jsme se je používat k dosažení požadovaných výsledků v MySQL. Také jsme vyzkoušeli několik různých příkladů JOINS, abychom lépe a hlouběji porozuměli konceptům. Navštěvujte tedy náš web linuxhint.com pro užitečnější obsah, jako je tento.

Hry Jak nainstalovat League Of Legends na Ubuntu 14.04
Jak nainstalovat League Of Legends na Ubuntu 14.04
Pokud jste fanouškem League of Legends, pak je to pro vás příležitost otestovat běh League of Legends. Všimněte si, že LOL je podporován na PlayOnLinu...
Hry Nainstalujte si nejnovější strategickou hru OpenRA na Ubuntu Linux
Nainstalujte si nejnovější strategickou hru OpenRA na Ubuntu Linux
OpenRA je herní engine Libre / Free Real Time Strategy, který obnovuje rané hry Westwood, jako je klasický Command & Conquer: Red Alert. Distribuované...
Hry Nainstalujte si nejnovější Dolphin Emulator pro Gamecube a Wii na Linuxu
Nainstalujte si nejnovější Dolphin Emulator pro Gamecube a Wii na Linuxu
Emulátor Dolphin vám umožní hrát vybrané hry Gamecube a Wii na osobních počítačích se systémem Linux (PC). Jako volně dostupný herní emulátor s otevř...