Baixe o app para aproveitar ainda mais
Prévia do material em texto
left join select * from vendas left join geo on geo.zip = vendas.zip; mais de um join select * from vendas left join geo on geo.zip = vendas.zip left join produtos on vendas.id_produto = produtos.id_produto; as lojas que não tem vendas registradas LEFT JOIN: select zip from geo left join vendas on geo.zip = vendas.zip where vendas.zip is null; right join (a tabela de referência agr é a da direita, a que vem depois do join) select * from vendas right join geo on geo.zip = vendas.zip as lojas que não tem vendas registradas RIGHT JOIN: select * from vendas right join geo on geo.zip = vendas.zip where vendas.zip is null; inner join (a diferença é que esse traz apenas o que coincide das duas tabelas, enquanto o left e right trazem tudo de uma tabela e da outra apenas que coincide com a principal) select * from vendas inner join geo on geo.zip = vendas.zip; select * from geo inner join vendas on geo.zip = vendas.zip; -- qual o nome do produto que mais foi vendido? select distinct produtos.produto from produtos inner join vendas on produtos.id_produto = vendas.id_produto where vendas.id_produto = ( select id_produto from vendas group by 1 order by sum(quantidade) desc limit 1 ); select id_produto, sum(quantidade) from vendas group by 1 order by 2 desc; select id_produto, produto from produtos where id_produto = 604; full outer join (oposto do inner quando usa o null) select * from geo g full outer join vendas v on g.zip = v.zip order by v.zip asc; select * from geo g full outer join vendas v on g.zip = v.zip where g.zip is null or v.zip is null; -- Qual foi a receita total de vendas por segmento? select segmento, sum(receita) from vendas left join produtos on produtos.id_produto = vendas.id_produto group by segmento order by 2 desc; -- Qual cidade que foi vendido o maior número de peças? select cidade from vendas v left join geo g on g.zip = v.zip group by 1 order by sum(quantidade) desc limit 1;
Compartilhar