Spojení SQL RIGHT JOIN Zahrnuje všechny řádky z pravé tabulky a ty, které odpovídají z levé. U těch, které se zprava neshodují, je v příslušných sloupcích vrácena hodnota NULL.
To je klíčový rozdíl mezi SQL RIGHT JOIN a INNER JOIN. Tam, kde vnitřní spojení vrací pouze řádky odpovídající podmínce spojení, je u pravého vnějšího spojení zaručeno, že do výsledku budou zahrnuty všechny řádky pravé tabulky.
Podívejte se na tento obrázek:
Podívejte se na výsledky pro Freda a všimněte si, že neexistuje žádný odpovídající Produkt, je NULL. Také není zahrnuta ve výsledku.
Jiný název pro pravé spojení je Pravé vnější spojení.
Obecný tvar RIGHT JOIN je:
SELECT table1.column1, table2.column2, … FROM table1 RIGHT JOIN table2 ON table1.commonColumn = table2.commonColumn
Poznámky:
- V tomto příkladu je tabulka2 pravá a tabulka1 levá.
- Pokud neexistuje shoda mezi hodnotami commonColumn, tabulka1.column1 vrátí NULL
SQL RIGHT JOIN Příklad
Ne každá osoba v databázi AdventureWorks je zaměstnancem. Vypíšeme každou osobu a některé údaje o jejím zaměstnání, pokud existují. Použijeme k tomu spojení RIGHT JOIN.
Mějte na paměti, že se jedná o RIGHT JOIN, protože tabulka person, která obsahuje každý řádek, který chceme vrátit, je na pravé straně operátoru JOIN.
Podívejte se na výsledky a všimněte si, že u některých lidí jsou NULL. Je to proto, že v tabulce Employee nejsou žádné odpovídající záznamy. RIGHT JOIN funguje tak, jak je inzerováno, vrací všechny shody a NULL tam, kde žádné neexistují.
Důležité body:
Při práci s RIGHT JOINY mějte na paměti, že vaše shoda z jedné tabulky do druhé může odpovídat více řádkům. To znamená, že váš výsledek může mít ve výsledku více řádků, než máte v obou tabulkách.
Když se sloupce neshodují, dotaz pravý řádek a NULL pro sloupce levé tabulky.