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:
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 .
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
Tabulka: objednávky
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:
'2020-04-30';>