Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
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+
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 116Dá esse 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!
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 "
>
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+
é 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
velho é sempre melhor olhar a data do tópico antes de responde-lo tu reviveu um tópico antigo.
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
faz o join com duas tabelas primeirodepois faz o join com a ultima tabela e o resultado do primeiro join