Ir para conteúdo

POWERED BY:

Arquivado

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

golbranco

INNER JOIN com 3 tabelas

Recommended Posts

Olá alguem tem um exemplo de como fazer um inner join com 3 tabelastipo eu tenho as seguintes tabelastb_produtostb_categoriastb_precosa logica é o seguinte...a tb_produtos tem q puxar o nome da categoria q está na tb_categorias e tbm puxar os preços da tb_precos usando o inner join...!!!tem como alguem me dar uma ajudinha... nisso...t+

Compartilhar este post


Link para o post
Compartilhar em outros sites

faz o join com duas tabelas primeirodepois faz o join com a ultima tabela e o resultado do primeiro join

Compartilhar este post


Link para o post
Compartilhar em outros sites

Eu estou com um problema parecido, e estou tentando implantar o modelo que você passou, porém não estou obtendo sucesso. Será que você poderia me dar uma ajuda!

 

Estou colocando assim:

 

strSQLPed = "SELECT Pedido_Item.*, Produto.*, Fornecedor.* "strSQLPed = strSQLPed & "FROM (Produto INNER JOIN Pedido_Item"strSQLPed = strSQLPed & "ON Produto.COD_Produto = Pedido_Item.COD_Produto)"strSQLPed = strSQLPed & " INNER JOIN Fornecedor ON Pedido_Item.cod_fornecedor = Fornecedor.cod_fornecedor "strSQLPed = strSQLPed & " WHERE Pedido_Item.COD_Pedido = " & Session("codPed") & " AND Produto.COD_Produto = Pedido_Item.COD_Produto"Set rsPedidoItem = Conexao.Execute(strSQLPed) ' line 116
Dá esse erro:

# Tipo de erro:

Microsoft OLE DB Provider for ODBC Drivers (0x80004005)

[MySQL][ODBC 3.51 Driver][mysqld-4.0.18-nt]Not unique table/alias: 'Produto'

/isopor/os_passo6.asp, line 116

 

-----------------------------------------------------------------

Estou usando banco MySQL, e tá assim a estrutura:

 

TABELA Pedido_Item

COD_Pedido

COD_PRODUTO

COD_FORNECEDOR

 

TABELA PRODUTO

COD_PRODUTO

PRODUTO

 

TABELA FORNECEDOR

COD_FORNECEDOR

FORNECEDOR

------------------------------------------------------------------------

 

 

COM 2 TABELAS EU CONSIGO FAZER FUNCIONAR, MÁS COM 3 NÃO TÁ INDO.

 

strSQLPed = "SELECT Pedido_Item.*, Produto.* "

strSQLPed = strSQLPed & "FROM Produto INNER JOIN Pedido_Item "

strSQLPed = strSQLPed & "ON Produto.COD_Produto = Pedido_Item.COD_Produto"

strSQLPed = strSQLPed & " WHERE Pedido_Item.COD_Pedido = " & Session("codPed") & " AND Produto.COD_Produto = Pedido_Item.COD_Produto"

 

 

Valeu!

Compartilhar este post


Link para o post
Compartilhar em outros sites

Não precisa mais, eu já consegui sem usar INNER JOIN.

Ficou assim:

 

strSQLPed = "SELECT Pedido_Item.*, Produto.*, Fornecedor.* "strSQLPed = strSQLPed & " FROM Produto, Pedido_Item, Fornecedor "strSQLPed = strSQLPed & " where Produto.COD_Produto = Pedido_Item.COD_Produto "strSQLPed = strSQLPed & " and Pedido_Item.COD_Fornecedor = Fornecedor.COD_Fornecedor "strSQLPed = strSQLPed & " and Pedido_Item.COD_Pedido = " & Session("codPed") & " AND Produto.COD_Produto = Pedido_Item.COD_Produto ORDER BY Pedido_Item.COD_Pedido_Item "

Compartilhar este post


Link para o post
Compartilhar em outros sites

SELECT TAB1.*, TAB2.*, TAB3.* FROM (TAB1 INNER JOIN TAB2 ON TAB1.CAMPO = TAB2.CAMPO)INNER JOIN TAB3 ON TAB1.CAMPO = TAB3.CAMPO;

 

aonde tab seria as tabelas:

e no INNER JOIN aonde CAMPO seria o campo relacional entre elas....levando em consideração que a tabela tb_produtos tenha campos relacionais as outras duas:

 

PS: so acho que este modelo para modelagemdas tabelas porderia ser feito de forma mais simples...

 

 

Mas a logica é essa.;.

 

Abraços

 

Adailton

vlw truta...

funcionou direitinho.... do jeito q eu precisava....

t+

Compartilhar este post


Link para o post
Compartilhar em outros sites

é sempre melhor pesquisar antes de perguntar, néh..

 

Adailton.. sua resposta foi perfeita.. valeu ae...

ajudou bastante a vida de muita gente...

 

e no momento, a minha tbm.. hehe

Compartilhar este post


Link para o post
Compartilhar em outros sites

um exemplo de como montar uma SQL com Inner Join usando 3 e 4 tabelas.

 

Inner Join com 3 Tabelas:

 

SELECT TOP 10 tblArtigo.cdArtigo, tblArtigo.cdCateg, tblCategoria.Nome, tblColunista.NomeCompleto, tblArtigo.*FROM tblColunista INNER JOIN (tblArtigo INNER JOIN tblCategoria ON tblArtigo.cdCateg = tblCategoria.cdCateg) ON tblColunista.cdCodColun = tblArtigo.cdColunORDER BY tblArtigo.Clicks DESC, tblArtigo.cdArtigo;

 

Inner Join com 4 Tabelas:

 

SELECT BSCodigos.Nome AS Codigo, BSSubCategorias.Nome AS SubCategoria, BSCategorias.Nome AS Categoria, BSComentarios.ComentarioFROM BSSubCategorias INNER JOIN ((BSCategorias INNER JOIN BSCodigos ON BSCategorias.cdCategoria = BSCodigos.cdCategoria) INNER JOIN BSComentarios ON BSCodigos.cdCodigo = BSComentarios.cdCodigo) ON BSSubCategorias.cdSubCat = BSCodigos.cdSubCat

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.