Databáze v jakémkoli počítačovém systému je sbírka strukturovaných nebo nestrukturovaných dat, která lze použít k provádění různých možností, jako je vytváření, mazání atd. Tato databáze je spravována speciálním jazykem známým jako SQL . V jazyce SQL existují různá spojení, která se používají k sestavení řádků ze dvou nebo více tabulek ze souvisejícího sloupce. Některé spoje jsou Vnitřní spojení , Připojit se vlevo , a Správně Připojte se . V tomto článku prozkoumáme koncepty s příklady Připojit se vlevo a Levý vnější spoj. Společně s tím projdeme také jejich hlavní rozdíly.
Připojit se vlevo
Left Join v jazyce SQL se používá k vrácení všech dat nebo záznamů z levé tabulky a odpovídajících dat nebo záznamů z pravé tabulky. Ve scénáři, kde není shoda, se spojení stále skládá z řádků z levé tabulky a zobrazuje hodnoty NULL pro sloupce pravé tabulky.
V kontextu dotazu je níže syntaxe levého spojení.
Syntax
SELECT sloupce FROM left_table
LEFT JOIN right_table ON
připojit_podmínka;
Pojďme nyní pochopit levé spojení na jednoduchém příkladu:
Příklad:
1. Tabulka Customer_Data:
| zákaznické identifikační číslo | Jméno zákazníka |
|---|---|
| 1 | Gaurav |
| 2 sonu nigam | Anjali |
| 3 | Ramesh |
2. Tabulka s údaji o objednávce:
| číslo objednávky | zákaznické identifikační číslo | datum objednávky |
|---|---|---|
| 1 | 1 | 2023-01-23 |
| 2 | 1 | 2023-02-03 |
| 3 | 3 | 2023-03-05 |
| 4 | 4 | 2023-04-10 |
Dotaz na levé připojení
SELECT Customer_Data.customer_id, Customer_Data.customer_name, Orders_Data.order_id, Orders_Data.order_date FROM Customers_Data LEFT JOIN Orders ON Customers_Data.customer_id = Orders_Data.customer_id;>
Výsledek/Výstup
| zákaznické identifikační číslo napište json do souboru python | Jméno zákazníka | číslo objednávky | datum objednávky |
|---|---|---|---|
| 1 | Gaurav | 1 | 2023-01-23 |
| 1 | Gaurav | 2 | 2023-02-03 |
| 2 | Anjali | NULA | NULA |
| 3 | Ramesh | 3 | 2023-03-05 |
Vysvětlení
Ve výše uvedeném příkladu. Levé spojení zahrnuje všechny řádky z levé tabulky ( Customer_Data ) a spojil je s odpovídajícími řádky v pravé tabulce ( Data_objednávek ). Zde má zákazník Gaurav 2 objednávky, Anjali nemá žádné objednávky (NULL) a Ramesh má 1 objednávku.
Levý vnější spoj
Koncept Levý vnější spoj je podobný a stejný jako Left Join a oba tyto termíny se používají zaměnitelně. Zde použité klíčové slovo je Vnější , což je volitelné a také neovlivňuje výsledek.
Podívejme se na syntaxi Left Outer Join:
Syntax
VYBERTE sloupce
FROM left_table
LEFT OUTER JOIN right_table ON
připojit_podmínka;
slf4j vs log4j
Příklad:
Podívejme se na stejné tabulky použité ve výše uvedeném příkladu spojení vlevo:
Dotaz na levé vnější spojení
SELECT Customer_Data.customer_id, Customer_Data.customer_name, Orders_Data.order_id, Orders_Data.order_date FROM Customers_Data LEFT OUTER JOIN Orders ON Customers_Data.customer_id = Orders_Data.customer_id;>
Výsledek/Výstup
| zákaznické identifikační číslo | Jméno zákazníka | číslo objednávky | datum objednávky |
|---|---|---|---|
| 1 | Gaurav | 1 ternární operátor java | 2023-01-23 |
| 1 | Gaurav | 2 | 2023-02-03 |
| 2 | Anjali | NULA | NULA |
| 3 | Ramesh | 3 | 2023-03-05 |
| 4 | NULA | NULA jaká je velikost mého monitoru | NULA |
Vysvětlení
Ve výše uvedeném příkladu neodpovídající záznamy z pravé tabulky ( Objednávky_Data ) jsou zahrnuty a pro pravé sloupce tabulky jsou zobrazeny hodnoty NULL. Zákazník s „ zákaznické identifikační číslo ' 4 v Objednávky_Data tabulka, která nemá odpovídající záznam v Customer_Data tabulka je také zahrnuta do sady výsledků a jsou zobrazeny hodnoty NULL, které nebyly zobrazeny v podmínce Left Join.
Rozdíl mezi levým spojením a levým vnějším spojením
| Parametr | Připojit se vlevo | Vnější spojení |
|---|---|---|
| Odpovídající záznamy | V levém spojení jsou zahrnuty odpovídající záznamy z pravé tabulky. | V levém vnějším spojení jsou zahrnuty odpovídající záznamy z pravých tabulek. |
| Neodpovídající záznamy | V levém spojení jsou vyloučeny neodpovídající záznamy z tabulky zcela vpravo. | V levém vnějším spojení jsou zahrnuty neodpovídající záznamy z pravé tabulky a pro pravé sloupce tabulky se zobrazí hodnota NULL. |
| Připojit klíčové slovo | PŘIPOJIT SE VLEVO | LEVÁ VNĚJŠÍ SPOJENÍ |
| Nulové hodnoty | Pro pravé sloupce tabulky nejsou zobrazeny žádné hodnoty NULL. | V případě, že neexistuje žádná shoda, jsou pro pravé sloupce tabulky uvedeny hodnoty NULL. |
| Syntax | SELECT sloupce FROM left_table LEFT JOIN right_table ON join_condition; | SELECT sloupce FROM left_table LEFT OUTER JOIN right_table ON join_condition; |
Nejčastější dotazy týkající se spojení Left Join a Left Outer Join
1. Kdy bychom měli použít Left Join?
Left Join by měl být použit, když potřebujeme vrátit všechny řádky z tabulky zcela vlevo, i když v tabulce zcela vpravo nejsou žádné odpovídající řádky. To je užitečné ve scénáři, kdy chceme vypsat všechna data z levé tabulky bez ohledu na to, zda obsahuje data v pravé tabulce.
2. Jaké jsou výhody používání Left Join?
Použití Left Join má různé typy výhod, potenciálně nám umožňuje zobrazit všechna data v levé tabulce, i když v pravé tabulce žádná data nemá. To lze použít pro úkoly auditu.
3. Vysvětlete výsledky levého vnějšího spojení.
Výsledky Left Outer Join se skládají z řádků z levé tabulky a také odpovídajících řádků z pravé tabulky. V případě, že neexistují žádné odpovídající řádky z pravé tabulky, odpovídající sloupce v sadě výsledků budou zobrazeny jako NULL.
4. Můžeme použít klauzuli ORDER BY spolu s Left Outer Join?
Ano, v dotazu můžeme použít klauzuli ORDER BY spolu s Left Outer Join. To seřadí výsledky spojení jako u jakéhokoli jiného dotazu.