2
respostas

nao conseguir entender inner

eu ainda nao consigo ler esse código, alguem poderia me ajudar descrevendo o que ele está fazendo? eu sei que é a resposta, mas no video o rapaz que dá aula explicou muito rapido e ficou muito ruim para eu entender e estou com dificuldades....

SELECT NOME, VALOR FROM COMPRAS INNER JOIN COMPRADORES ON COMPRAS.COMPRADOR_ID = COMPRADORES.ID WHERE DATA < '2010-08-09' alguem poderia me explicar ou simplificar em termos leigos? valeu

2 respostas

Oi Allan!

Esse código está selecionando o nome e valor das tabelas Compradores e Compras onde a data é antes do dia 09/08/2010.

O que o inner join faz é o produto cartesiano entre as tabelas Compradores e Compras o on especifica qual a condição desse produto cartesiano, ou seja, ele vai selecionar somente as linhas onde a compra bate com o comprador.

Essa imagem explica usando diagramas de venn cada um dos diferentes tipos de join e pode te ajudar a entender um pouco melhor eles: http://www.codeproject.com/KB/database/Visual_SQL_Joins/Visual_SQL_JOINS_orig.jpg

Abraços!

Olá Allan, tudo bem? Vou tentar te explicar no modo teórico o que são os inners ou como conhecido e corretamente na pronuncia os joins.

Os joins trazem o resultado da junção de uma ou mais tabelas em uma base de dados. Atualmente nos temos os Inners joins e Outer Joins.

Após entender isso é bem fácil entender o código.

quando você usa um inner join você junta 2 tabelas. Ex.:

COMPRAS INNER JOIN COMPRADORES

você tá juntando a tabela compras com a tabelas compradores. Simples né?

Os Outers joins tem conceitos muitos parecidos, ele também junta resultados de tabelas, entretanto, com diferenças. Ex.: Quando você usar um LEFT JOIN ele trará todos os resultados que tem nas duas tabelas, mas se baseando na tabela da esquerda. No caso do exemplo acima a tabela Compras.

Quando você usa um RIGHT JOIN Ele segue a lógica retornando todos os valores de ambas as tabelas, porém baseada na tabela da direita. No caso do exemplo acima a tabelas de compradores.

Beleza? Espero ter ajudado. Abraços.