SELECT JOINS

Como vocês sabem o SQL é uma linguagem de pesquisa declarativa que se tornou padrão nos bancos de dados relacionais.

O que quero mostrar aqui é como relacionar os dados usando sql, a principal motivação para isso foi ver muita gente fazendo consultas de forma totalmente errada, ou então em muitos casos pegando uma parte alí outra aqui e juntando na camada de aplicação.

O comando mais básico do SQL é o Select exemplos:

select name from users 
-- retorna todos os usuarios

select name from users where name = 'Pitolomeu' 
-- retorna todos os usuarios onde o nome é igual a Pitolomeu

select name from users where age > 30
-- retorna todos os usuarios onde a idades deles é maior que 30 anos

select name from users where LEN(name) >= 50
-- retorna todos os usuarios onde a quantidade de 
-- caracters no nome deles é maior ou igual a 50

select name, project 
from  users as u
join  projects as p on p.user_id = u.id
where name like 'Leonardo da Vinci%'
-- retorna todos os usuarios e seus projetos onde o nome do 
-- usuário começa com 'Leonardo da Vinci' e pode ter qualquer coisa depois 

Eu tiver pesquisando afim de saber se aguém já havia explicado isso e como foi a abordagem dele, para eu tomar uma linha diferente de explicação, e então me deparei com algumas imagens no nosso querido StackOverflow, para explica o assunto basta somente expor essas imagens.

JOINS SQL

INNER JOIN

SQL Inner Join

LEFT JOIN

SQL Left Join

RIGHT JOIN

SQL Right Join

OUTER JOIN

SQL Full Outer Join

Um bom lugar para treinar esses comandos pode ser aqui