Ultimamente tenho visto algumas duvidas quanto ao inner join no forum então peguei o tuto citado pelo urso e vou colocar aqui.....
SELECT INNER JOIN
- Utilizamos o inner join em casos que é preciso montar um recordset lendo dados de mais de uma tabela. É uma forma de unir tabelas, e para isso é preciso que haja uma relação entre as mesmas, ou seja, um campo de ligação. É válido dizer que estes campos não precisam conter o mesmo nome, porém devem ser do mesmo tipo.
O objetivo desta página é exibir dados de duas tabelas, sendo a de categorias e a de produtos. Imagine você criando um <a href="http://www.ntsearch.com/search.php?q=e-commerce&v=56">e-commerce</a> onde é preciso mostrar aos internautas quais produtos existem por categorias para que eles possam ter uma visão melhor dos dados contidos no banco de dados. É exatamente nesse caso que utilizamos o inner join.
A sintaxe do inner join não é difícil de entender, basta ter os relacionamentos das tabelas para saber como ligá-las e quais ligações são possíveis. De um modo geral, toda vez que citar um campo, especifique qual tabela ele pertence. Veja a sintaxe abaixo:
strSQL = "SELECT Categoria.Categoria, Produtos.Produto, Produtos.VRL_Unitario "
Seleciona o campo Categoria da tabela Categoria, os campos Produto e VRL_Unitario da tabela Produtos
strSQL = strSQL & "FROM Categoria "
A origem é a tabela Categoria. Isso significa que a tabela Categoria é o lado UM de um relacionamento, e com isso, o recordset é montado mais rapidamente; não que esteja errado colocar a tabela Produtos, mas procure adotar esta regra de boas maneiras de programação em banco de dados.
strSQL = strSQL & "INNER JOIN Produtos "
A tabela Categoria citada acima será ligada a tabela Produtos.
strSQL = strSQL & "ON Categoria.COD_Categoria = Produtos.COD_Categoria "
Aqui é declarado quais os campos de ligação, sendo o campo COD_Categoria da tabela Categoria e o campo COD_Categoria da tabela Produtos.
strSQL = strSQL & "ORDER BY Categoria.Categoria, Produtos.Produto"
É determinado a ordem em que o recordset será exibido, sendo primeiro por categoria e em seguida pelo produto.
Repare que estou utilizando a técnica do include file, que invoca as rotinas contidas no arquivo bib_conexao.<a href="http://www.ntsearch.com/search.php?q=asp&v=56">asp</a> que é encarregada de abrir e fechar a conexão. Para maiores detalhes veja sobre include file.
<%
Option Explicit
%>
<!--# include file="bib_conexao.asp"-->
Dim Conexao, rsProdutos, strSQL
strSQL = "SELECT Categoria.Categoria, Produtos.Produto, Produtos.VRL_Unitario "
strSQL = strSQL & "FROM Categoria "
strSQL = strSQL & "INNER JOIN Produtos "
strSQL = strSQL & "ON Categoria.COD_Categoria = Produtos.COD_Categoria "
strSQL = strSQL & "ORDER BY Categoria.Categoria, Produtos.Produto"
Call abre_conexao
Set rsProdutos = <a href="http://www.ntsearch.com/search.php?q=Server&v=56">Server</a>.CreateObject("ADODB.Recordset")
Set rsProdutos = Conexao.Execute(strSQL)
Response.Write "Produtos por Categoria<br>"
While Not rsProdutos.EOF
Response.Write "categoria: " & rsProdutos("Categoria") & " - "
Response.Write "produto: " & rsProdutos("Produto") & " - "
Response.Write "preço: " & FormatNumber(rsProdutos("VRL_Unitario"),2) & "<br>"
rsProdutos.MoveNext
Wend
rsProdutos.Close
Call fecha_conexao
Set rsProdutos = Nothing
%>
/* --------------------- EDIT BY DARK0 --------------------- */
uma boa explicação disso, as principais diferenças entre: INNER, LEFT, RIGHT e FULL join encontra-se aqui tb:
Pergunta
bareta
Ultimamente tenho visto algumas duvidas quanto ao inner join no forum então peguei o tuto citado pelo urso e vou colocar aqui.....
SELECT INNER JOIN
/* --------------------- EDIT BY DARK0 --------------------- */
uma boa explicação disso, as principais diferenças entre: INNER, LEFT, RIGHT e FULL join encontra-se aqui tb:
http://www.freecode.com.br/drArtigos/art_d...OGFS40333KUEHHI
/* ---------------------- FIM EDIT DARK0 -------------------- */
Editado por dark0Link para o comentário
Compartilhar em outros sites
0 respostass a esta questão
Posts Recomendados
Participe da discussão
Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.