Rozdíly mezi levým a pravým spojením

Levý vs. pravý vstup

Při jednání s SQL je spojení běžné jméno, které se tu a tam objeví. Klauzule join pomáhá při kombinaci záznamů z různých tabulek v datové sadě. Spojení ve skutečnosti vytvoří tabulku, kterou lze použít tak, jak je, nebo rozbalit s ostatními. Je proto vhodné porozumět těmto spojením a rozdílům mezi nimi, abychom poznali konkrétní spojení, a zda ve zvláštních případech je třeba brát pravou nebo levou..

Abychom lépe porozuměli spojení a jejich rozdílům, je důležité porozumět dostupným typům spojení. Obecně existují tři typy spojení. Tyto spoje zahrnují vnitřní spoj, křížový spoj a vnější spoj. Vnitřní spojení obecně porovnává tabulky a výsledek poskytne nebo vrátí pouze v případě, že je nalezena shoda. Hlavní funkcí vnitřního spojení je zmenšení velikosti sad výsledků.

Křížové spoje na druhé straně porovnávají dvě tabulky a poskytují návratnost každé možné kombinace vycházející z řádků obou tabulek. Od tohoto spojení se očekává mnoho výsledků a většina z nich nemusí mít smysl. Použití tohoto spojení by proto mělo být prováděno opatrně.

Vnější spojení provede porovnání tabulek a vrátí data, když je k dispozici shoda. Jak je vidět ve vnitřním spojení, vnější spojení duplikuje řádky v dané tabulce v případě, že se zobrazí odpovídající záznamy. Výsledky vnějších spojení jsou obvykle větší, a proto jsou datové sady velké, protože samotná sada není ze sady odstraněna.

Levé spojení označuje uchování všech záznamů z 1. tabulky bez ohledu na výsledek a vložení hodnot NULL, když se hodnoty druhé tabulky neshodují. Naproti tomu spojení vpravo znamená uchování všech záznamů pocházejících z 2. tabulky bez ohledu na to, jaký je výsledek, a použití hodnot NULL, pokud výsledky nesouhlasí s výsledky v 1. tabulce..

Levý vnější spoj tedy zachovává všechny řádky, které jsou v „levé“ tabulce, bez ohledu na to, zda je v „pravé“ tabulce odpovídající řada. Levá tabulka proto odkazuje na tabulku, která je na prvním místě ve společném prohlášení. Měl by se zobrazit vlevo od klíčového slova „join“, které se vyskytuje v tabulce. Po dokončení levého vnějšího spojení by se měly vrátit všechny řádky zleva. Neshodné sloupce v tabulce budou vyplněny hodnotou NULL, kdykoli neexistuje shoda.

Je důležité si uvědomit, že při řešení těchto dvou spojení jsou všechny řádky zleva tabulky zobrazeny v tabulce v levém vnějším spojení. Výsledky se zobrazují bez ohledu na to, zda jsou v pravé tabulce přítomny odpovídající sloupce. V pravém vnějším spojení jsou zobrazeny všechny řádky zprava, a to bez ohledu na to, zda jsou na levé straně tabulky nějaké odpovídající sloupce..

Volba, zda se rozhodnete pro levý vnější spoj nebo pravý vnější spoj, nezáleží, protože jsou zobrazeny stejné výsledky. Funkce, kterou představuje pravé vnější spojení, je stejná jako funkce levé vnější spojení. Jednoduše přepínáte pořadí, ve kterém se tabulky zobrazují v příkazu SQL, můžete očekávat podobné výsledky bez ohledu na použité spojení.

souhrn

Spojení přicházejí do tří hlavních skupin - vnitřní spojení, křížové spojení a vnější spojení

Levé vnější spojení zobrazí všechny řádky zleva tabulky

Spojení vpravo zobrazí všechny řádky z pravé části tabulky

Střídání sekvence SQL může eliminovat použití pravého i levého vnějšího spojení a místo toho použít pouze jedno.