Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Java Developer

Problema com INNER JOIN

Recommended Posts

Urgente..

 

Pessoal criei este INNER JOIN só que tah dando erro alguem poderia me ajudar

 

 

SELECT  tab_unidades.nome_matriz, tab_pass_unidades_regiao.id_regiao, tab_pass_unidades_regiao.cod_fr FROM tab_unidades INNER JOIN (tab_pass_unidades_regiao INNER JOIN tab_unidades.nome_matriz, tab_pass_unidades_regiao .id_regiao, tab_pass_unidades_regiao.cod_fr ON tab_unidades.cod_emitente=tab_pass_unidades_regiao.cod_fr) ON tab_unidades.cod_emitente=tab_pass_unidades_regiao.cod_fr Where id_regiao Where id_regiao = '"& idRegiao &"' ORDER BY tab_unidades.nome_matriz

Compartilhar este post


Link para o post
Compartilhar em outros sites

Opa!

Com esse sql que você montou abaixo fico maluco :D

Passa as tabelas com o nome dos campos e chaves para entender melhor o que você precisa.. ;)

 

Dai monto um e explico, ressaltando a diferença do que foi feito

Compartilhar este post


Link para o post
Compartilhar em outros sites

Para cada INNER JOIN de CADA tabela, recomendo que você faça o relacionamento das tabelas

uma tabela de cada vez, vai facilitar pra você resolver o problema e também para consertar caso haja algum problema.

 

[]'s

Compartilhar este post


Link para o post
Compartilhar em outros sites

qual erro gerado ?

 

lembrando que a importância de uma modelagem de dados bem definida até os mínimos detalhes, como os campos de relacionamentos, é como sempre falo, um relacionamento bem definido é a alma de um aplicativo, pois daí saem todas as consultas e operações com o bd, influenciando diretamente na otimização e performance de sua página, entao verifique tb como estao seus relacionamentos.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Concordo com Xikoo

 

Para cada INNER JOIN de CADA tabela recomenda que você faça o relacionamento das tabelas

 

 

Quando você for associar as tabelas no FROM, tente sempre usar , por exemplo o conceito abaixo...

 

FROM tabela

INNER JOIN tabela1 ON tabela1.campo = tabela.campo

 

 

Outra coisa, se você usar alias, se torna mais fácil o entendimento futuro do código, tipo:

 

 

FROM tabela tab

INNER JOIN tabela1 tab1 ON tab1.campo = tab.campo

 

 

OBS: Lembrando, o alias substitui o nome da tabela, no caso tabela tab , você vai referenciar esta tabela usando "tab"

 

Espero ter ajudado... ;)

Compartilhar este post


Link para o post
Compartilhar em outros sites

olha este exemplo

 

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 e-commerce 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.asp 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 = Server.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
%>

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.