Už jsem si o tom jednou zjišťoval informace, ale protože jsem to pak nepoužil, a víckrát jsem toto nutně nepotřeboval, zapomněl jsem jak se to používá a jiné informace o tomto. Velmi mi dnes pomohlo na základní pochopení tento obrázek, který jsem našel na stackoverflow:
Pak jsem si vytvořil v SQL Server Management Studio tyto 2 tabulky: Tabulka Albums:

Tabulka Photos:

A teď výsledky a popisy jednotlivých funkcí sql join: Full Outer Join: Full Outer Join slouží k tomu, pokud chcete získat všechna data tabulek seskupenou podle jejich klíče, jehož specifikace se nachází v klazuli on na konci SQL dotazu. Takže tento příkaz:
use MSSQLLearn;
select * from Albums a full outer join Photo p on a.IDAlbum = p.IDAlbum;Výsledek tohoto příkazu vidíte zde:

Později si ukážeme jak získat jen konkrétní sloupce. Inner Join: Toto je patrně to co ve většině případů budete potřebovat. Jednoduše řečeno – vrátí vám jen ty řádky z tabulek, které mají stejný klíč. Napsal jsem si takový SQL příkaz:
use MSSQLLearn;
select * from Albums a inner join Photo p on a.IDAlbum = p.IDAlbum;

Left Join: Tabulku kterou určím za left join nemusí mít tu hodnotu kterou mám v klazuli on. Takové hodnoty neexistujícího sloupce tabulky se pak nahradí NULL. Takže jednoduchá pomůcka pro rozlišení kdy dát left a kdy right join – left pokud chcete mít všechny řádky z hlavní tabulky, tedy z té kterou specifikujete za slovem from. Right pokud chcete mít všechny řádky z tabulky, kterou specifikujete za klíčovým slovem join:
use MSSQLLearn;
select * from Albums a left join Photo p on a.IDAlbum = p.IDAlbum;

Right Join: Je to analogické s left join – akorát naopak. To znamená že budou vypsány všechny řádky ze tabulky specifikované za join a řádky které nebudou mít shodný klíč v tabulce za from budou mít ve sloupcích null.
use MSSQLLearn;
select * from Albums a right join Photo p on a.IDAlbum = p.IDAlbum;

Libovolný Join s určením vrácených sloupců libovolné tabulky Na konec to slíbené. Není to žádná věda a určitě tohle bude nošení dříví do lesa, jen chci ukázat že to skutečně funguje:
use MSSQLLearn;
select a.Name, p.Name from Albums a left join Photo p on a.IDAlbum = p.IDAlbum;