Jak funguji full outer join, inner join, left join a right join v SQL Server 2014


Uz jsem si o tom jednou zjistoval informace, ale protoze jsem to pak nepouzil, a vickrat jsem toto nutne nepotreboval, zapomnel jsem jak se to pouziva a jine informace o tomto. Velmi mi dnes pomohlo na zakladni pochopeni tento obrazek, ktery jsem nasel na stackoverflow: 1UKp7 Pak jsem si vytvoril v SQL Server Management Studio tyto 2 tabulky: Tabulka Albums:
Tabulka Albums
  Tabulka Photos:
Tabulka Photos
  A ted vysledky a popisy jednotlivych funkci sql join: Full Outer Join: Full Outer Join slouzi k tomu, pokud chcete ziskat vsechna data tabulek seskupenou podle jejich klice, jehoz specifikace se nachazi v klazuli on na konci SQL dotazu. Takze tento prikaz:

use MSSQLLearn;
select * from Albums a full outer join Photo p on a.IDAlbum = p.IDAlbum; 

Vysledek tohoto prikazu vidite zde:
full outer join
Pozdeji si ukazeme jak ziskat jen konkretni sloupce. Inner Join: Toto je patrne to co ve vetsine pripadu budete potrebovat. Jednoduse receno – vrati vam jen ty radky z tabulek, ktere maji stejny klic. Napsal jsem si takovy SQL prikaz:

use MSSQLLearn;
select * from Albums a inner join Photo p on a.IDAlbum = p.IDAlbum; 


inner join
Left Join: Tabulku kterou urcim za left join nemusi mit tu hodnotu kterou mam v klazuli on. Takove hodnoty neexistujiciho sloupce tabulky se pak nahradi NULL. Takze jednoducha pomucka pro rozliseni kdy dat left a kdy right join – left pokud chcete mit vsechny radky z hlavni tabulky, tedy z te kterou specifikujete za slovem from. Right pokud chcete mit vsechny radky z tabulky, kterou specifikujete za klicovym slovem join:

use MSSQLLearn;
select * from Albums a left join Photo p on a.IDAlbum = p.IDAlbum; 


left join
Right Join: Je to analogicke s left join – akorat naopak. To znamena ze budou vypsany vsechny radky ze tabulky specifikovane za join a radky ktere nebudou mit shodny klic v tabulce za from budou mit ve sloupcich null.

use MSSQLLearn;
select * from Albums a right join Photo p on a.IDAlbum = p.IDAlbum; 


right join
Libovolny Join s urcenim vracenych sloupcu libovolne tabulky Na konec to slibene. Neni to zadna veda a urcite tohle bude noseni drivi do lesa, jen chci ukazat ze to skutecne funguje:

use MSSQLLearn;
select a.Name, p.Name from Albums a left join Photo p on a.IDAlbum = p.IDAlbum; 


left join s urcenim sloupcu


Leave a Reply

Your email address will not be published.