MySQL má hlavne dva druhy spojení s názvom LEFT JOIN a RIGHT JOIN. Hlavným rozdielom medzi týmito spojeniami je zahrnutie nezhodných riadkov . LEFT JOIN obsahuje všetky záznamy z ľavej strany a zhodné riadky z pravej tabuľky, zatiaľ čo RIGHT JOIN vráti všetky riadky z pravej strany a nezhodné riadky z ľavej tabuľky. V tejto časti sa dozvieme o populárnych rozdieloch medzi LEFT a RIGHT pripojením. Pred skúmaním porovnania najprv pochopme klauzuly JOIN, LEFT JOIN a RIGHT JOIN v MySQL .
Čo je to klauzula JOIN?
A pripojiť sa sa používa na dopytovanie údajov z viacerých tabuliek a vracia kombinovaný výsledok z dvoch alebo viacerých tabuliek prostredníctvom podmienky. Podmienka v klauzule spojenia označuje, ako sa stĺpce spájajú medzi špecifikovanými tabuľkami.
Čo je to klauzula LEFT JOIN?
Klauzula Left Join spája dve alebo viac tabuliek a vráti všetky riadky z ľavej tabuľky a zodpovedajúce záznamy z pravej tabuľky alebo vráti hodnotu null, ak nenájde žiadny zodpovedajúci záznam. Je tiež známy ako Ľavý vonkajší spoj . Vonkajšie je teda voliteľné kľúčové slovo na použitie s ľavým spojením.
Môžeme to pochopiť pomocou nasledujúceho vizuálneho znázornenia:
Ak si chcete prečítať viac informácií o LEFT pripojení, kliknite tu .
Čo je to RIGHT JOIN Klauzula?
Klauzula Right Join spája dve alebo viac tabuliek a vracia všetky riadky z pravej tabuľky a iba tie výsledky z druhej tabuľky, ktoré splnili zadanú podmienku spojenia. Ak nájde nezhodné záznamy z ľavej tabuľky, vráti hodnotu Null. Je tiež známy ako Pravé vonkajšie spojenie . Vonkajšia je teda voliteľná klauzula, ktorá sa má použiť s Right Join.
Môžeme to pochopiť nasledujúcim spôsobom vizuálna reprezentácia .
Ak si chcete prečítať viac informácií o RIGHT JOIN, kliknite sem .
Syntax klauzuly LEFT JOIN
Nasleduje všeobecná syntax LEFT JOIN:
SELECT column_list FROM table_name1 LEFT JOIN table_name2 ON column_name1 = column_name2 WHERE join_condition
Nasleduje všeobecná syntax LEFT OUTER JOIN:
SELECT column_list FROM table_name1 LEFT OUTER JOIN table_name2 ON column_name1 = column_name2 WHERE join_condition
Syntax klauzuly RIGHT JOIN
Nasleduje všeobecná syntax RIGHT JOIN:
SELECT column_list FROM table_name1 RIGHT JOIN table_name2 ON column_name1 = column_name2 WHERE join_condition
Nasleduje všeobecná syntax RIGHT OUTER JOIN:
SELECT column_list FROM table_name1 RIGHT OUTER JOIN table_name2 ON column_name1 = column_name2 WHERE join_condition
LEFT JOIN vs. RIGHT JOIN
Nasledujúca porovnávacia tabuľka rýchlo vysvetľuje ich hlavné rozdiely:
ĽAVÉ PRIPOJENIE | SPRÁVNE PRIPOJTE SA |
---|---|
Spája dve alebo viac tabuliek, vracia všetky záznamy z ľavej tabuľky a zodpovedajúce riadky z pravej tabuľky. | Používa sa na spojenie dvoch alebo viacerých tabuliek, vráti všetky záznamy z pravej tabuľky a zodpovedajúce riadky z ľavej tabuľky. |
Ak sa v tabuľke na pravej strane nenachádza žiadny zodpovedajúci riadok, sada výsledkov bude obsahovať nulovú hodnotu. | Ak sa v tabuľke na ľavej strane nenachádza žiadny zodpovedajúci riadok, sada výsledkov bude obsahovať nulovú hodnotu. |
Je tiež známy ako LEFT OUTER JOIN. | Nazýva sa aj ako RIGHT OUTER JOIN. |
Príklad
Poďme pochopiť rozdiely medzi oboma spojeniami prostredníctvom príkladov. Predpokladajme, že máme tabuľku s názvom ' zákazníka ' a ' objednávky “, ktorý obsahuje nasledujúce údaje:
Tabuľka: zákazník
Tabuľka: objednávky
LEFT JOIN Príklad
Nasledujúci príkaz SQL vráti zodpovedajúce záznamy z oboch tabuliek pomocou 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 úspešnom vykonaní dotazu dostaneme výstup nasledovne:
'2020-04-30';>