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.

-Seznam všech osob a případných údajů o zaměstnání, pokud existují. -Použijeme k tomu Outer Join… SELECT P.FirstName , P.LastName , E.HireDate , E.JobTitle FROM HumanResources.Employee AS E RIGHT JOIN Person.Person AS P ON P.BusinessEntityID = E.BusinessEntityID;
--List all People and any employment data, if it exists. --Use Outer Join to do so... SELECT P.FirstName , P.LastName , E.HireDate , E.JobTitle FROM HumanResources.Employee AS E RIGHT JOIN Person.Person AS P ON P.BusinessEntityID = E.BusinessEntityID; 

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.

Napsat komentář

Vaše e-mailová adresa nebude zveřejněna.