logo

Rozdíl mezi spojením Left Join a Right Join

MySQL má hlavně dva druhy spojení s názvem LEFT JOIN a RIGHT JOIN. Hlavní rozdíl mezi těmito spojeními je zahrnutí neshodných řádků . LEFT JOIN obsahuje všechny záznamy z levé strany a odpovídající řádky z pravé tabulky, zatímco RIGHT JOIN vrací všechny řádky z pravé strany a neshodné řádky z levé tabulky. V této sekci se seznámíme s oblíbenými rozdíly mezi LEFT a RIGHT připojením. Než prozkoumáme srovnání, nejprve pochopíme klauzule JOIN, LEFT JOIN a RIGHT JOIN v MySQL .

Co je klauzule JOIN?

A připojit se používá k dotazování na data z více tabulek a vrací kombinovaný výsledek ze dvou nebo více tabulek prostřednictvím podmínky. Podmínka v klauzuli spojení označuje, jak jsou sloupce mezi zadanými tabulkami spárovány.

Co je klauzule LEFT JOIN?

Klauzule Left Join spojí dvě nebo více tabulek a vrátí všechny řádky z levé tabulky a odpovídající záznamy z pravé tabulky nebo vrátí hodnotu null, pokud nenajde žádný odpovídající záznam. Je také známý jako Levý vnější spoj . Vnější je tedy nepovinné klíčové slovo pro použití s ​​levým spojením.

Můžeme to pochopit pomocí následující vizuální reprezentace:

Levé spojení vs pravé spojení

Chcete-li si přečíst více informací o LEVÉM připojení, klikněte zde .

Co je klauzule RIGHT JOIN?

Klauzule Right Join spojuje dvě nebo více tabulek a vrací všechny řádky z tabulky vpravo a pouze ty výsledky z druhé tabulky, které splnily zadanou podmínku spojení. Pokud nalezne neodpovídající záznamy z levé postranní tabulky, vrátí hodnotu Null. Je také známý jako Pravé vnější spojení . Outer je tedy volitelná klauzule, kterou lze použít s Right Join.

Můžeme to pochopit s následujícím vizuální reprezentace .

Levé spojení vs pravé spojení

Chcete-li si přečíst více informací o RIGHT JOIN, klikněte sem .

Syntaxe klauzule LEFT JOIN

Následuje obecná syntaxe LEFT JOIN:

 SELECT column_list FROM table_name1 LEFT JOIN table_name2 ON column_name1 = column_name2 WHERE join_condition 

Následuje obecná syntaxe LEFT OUTER JOIN:

 SELECT column_list FROM table_name1 LEFT OUTER JOIN table_name2 ON column_name1 = column_name2 WHERE join_condition 

Syntaxe klauzule RIGHT JOIN

Následuje obecná syntaxe RIGHT JOIN:

 SELECT column_list FROM table_name1 RIGHT JOIN table_name2 ON column_name1 = column_name2 WHERE join_condition 

Následuje obecná syntaxe RIGHT OUTER JOIN:

 SELECT column_list FROM table_name1 RIGHT OUTER JOIN table_name2 ON column_name1 = column_name2 WHERE join_condition 

PŘIPOJENÍ VLEVO vs. PŘIPOJENÍ VPRAVO

Následující srovnávací tabulka rychle vysvětluje jejich hlavní rozdíly:

PŘIPOJIT SE VLEVO SPRÁVNÉ PŘIPOJENÍ SE
Spojí dvě nebo více tabulek, vrátí všechny záznamy z levé tabulky a odpovídající řádky z pravé tabulky. Používá se ke spojení dvou nebo více tabulek, vrací všechny záznamy z pravé tabulky a odpovídající řádky z levé tabulky.
Pokud v tabulce na pravé straně není žádný odpovídající řádek, bude sada výsledků obsahovat hodnotu null. Pokud v tabulce na levé straně není žádný odpovídající řádek, bude sada výsledků obsahovat hodnotu null.
Je také známý jako LEFT OUTER JOIN. Nazývá se také jako RIGHT OUTER JOIN.

Příklad

Pojďme pochopit rozdíly mezi oběma spojeními pomocí příkladů. Předpokládejme, že máme tabulku s názvem ' zákazník ' a ' objednávky “, který obsahuje následující údaje:

Tabulka: zákazník

Levé spojení vs pravé spojení

Tabulka: objednávky

Levé spojení vs pravé spojení

LEFT JOIN Příklad

Následující příkaz SQL vrátí odpovídající záznamy z obou tabulek pomocí dotazu LEFT JOIN:

 SELECT cust_id, cust_name, order_num, order_date FROM customer LEFT JOIN orders ON customer.cust_id = orders.order_id WHERE order_date <'2020-04-30'; < pre> <p>After successful execution of the query, we will get the output as follows:</p> <img src="//techcodeview.com/img/mysql-tutorial/37/difference-between-left-join-5.webp" alt="Left Join vs Right Join"> <p> <strong>RIGHT JOIN Example</strong> </p> <p>Following SQL statement returns the matching records from both tables using the RIGHT JOIN query:</p> <pre> SELECT cust_id, cust_name, occupation, order_num, order_date FROM customer RIGHT JOIN orders ON cust_id = order_id ORDER BY order_date; </pre> <p>After successful execution of the query, we will get the output as follows:</p> <img src="//techcodeview.com/img/mysql-tutorial/37/difference-between-left-join-6.webp" alt="Left Join vs Right Join"> <hr></'2020-04-30';>

Po úspěšném provedení dotazu získáme výstup takto:

Levé spojení vs pravé spojení