INNER JOIN NO VB.NET

EABREU 03/12/2012 16:31:09
#415331
Olá pessoal,

Eu escrevi a string sql abaixo para realizar a pesquisa em 4 tabelas relacionadas com o mesmo campo mas ainda não funcionou. Alguém pode me mostrar onde estão oes erros?
Segue a string:


sql As String = [Ô]Select * From Indice[Ô] _
& [Ô]INNER JOIN (((dekafix1 INNER JOIN dekafix2 ON dekafix1.CodDekafix = dekafix2.CodDekafix) [Ô] _
& [Ô]INNER JOIN dekafix3 ON dekafix2.CodDekafix = dekafix3.CodDekafix) [Ô] _
& [Ô]INNER JOIN dekafix1_2L ON dekafix3.CodDekafix = dekafix1_2L.CodDekafix) [Ô] _
& [Ô]ON Indice.CodDekafix = dekafix1.CodDekafix ORDER BY Indice.CodDekafix[Ô]


Obrigado,

Edson


ALEVALE 03/12/2012 17:38:26
#415337
Faça o SQL, from tabela A,B,C,D depois faça o join e where
JOEYRFS 03/12/2012 20:42:43
#415346
Vc está fazendo isso par aqual banco ? Access ? SQL Server ?
EABREU 04/12/2012 07:45:23
#415355
Eu estou utilizando banco Access.
Se eu retirar todos os [Ô]Inner Join* e apenas utilizar

sql = [Ô]SELECT * From Indice[Ô]

eu consigo ler os dados da tabela Indice mas preciso ler tambem os dados das outras tabelas relacionadas.

Edson
JOEYRFS 04/12/2012 08:39:57
#415361
SELECT * FROM Indice
INNER JOIN dekafix1 ON dekafix1.CodDekafix = Indice.CodDekafix
INNER JOIN dekafix2 ON dekafix2.CodDekafix = Indice.CodDekafix
INNER JOIN dekafix3 ON dekafix3.CodDekafix = Indice.CodDekafix
JOEYRFS 04/12/2012 08:47:01
#415366
Lembrando que não coloque o *, e sim defina quais campos vc precisa.
E se estiver com nomes iguais tem que definir um Alias para eles.
EABREU 04/12/2012 09:24:01
#415371
Eu coloquei o exatamente o código abaixo:

sql = [Ô] SELECT * FROM Indice[Ô] _
& [Ô] INNER JOIN dekafix1 ON dekafix1.CodDekafix = Indice.CodDekafix[Ô] _
& [Ô] INNER JOIN dekafix2 ON dekafix2.CodDekafix = Indice.CodDekafix[Ô] _
& [Ô] INNER JOIN dekafix3 ON dekafix3.CodDekafix = Indice.CodDekafix[Ô] _
& [Ô] ORDER BY Indice.CodDekafix[Ô]

e o VB me retornou:

[Ô]Erro de sintaxe (operador faltando) na expressão de consulta[Ô]

O que devo acrescentar?

Obrigado

Edson
TSANALISTA 04/12/2012 11:39:31
#415395
Tenho um exemplo aqui do meu CRUD com três tabelas relacionadas..veja ai talvez ajude..


Private strInstrucaoSelect As String = [Ô]SELECT L.IdLogin, L.Login, L.Senha, U.Nome, P.Perfil FROM AC_Login AS L [Ô] + _
[Ô]INNER JOIN AC_Usuario AS U ON U.IdLogin = L.IdLogin INNER JOIN AC_Perfil AS P ON P.IdPerfil = U.IdPerfil [Ô] + _
[Ô]WHERE L.Login = @Login AND L.Senha = @Senha AND U.EhAtivo = 1[Ô]
JOEYRFS 04/12/2012 12:06:53
#415403
São os nomes iguais.
Coloque o nome dos campos.
NICKOSOFT 04/12/2012 15:59:27
#415433
Citação:

:
Eu coloquei o exatamente o código abaixo:

sql = [Ô] SELECT * FROM Indice[Ô] _
& [Ô] INNER JOIN dekafix1 ON dekafix1.CodDekafix = Indice.CodDekafix[Ô] _
& [Ô] INNER JOIN dekafix2 ON dekafix2.CodDekafix = Indice.CodDekafix[Ô] _
& [Ô] INNER JOIN dekafix3 ON dekafix3.CodDekafix = Indice.CodDekafix[Ô] _
& [Ô] ORDER BY Indice.CodDekafix[Ô]

e o VB me retornou:

[Ô]Erro de sintaxe (operador faltando) na expressão de consulta[Ô]

O que devo acrescentar?

Obrigado

Edson



essa query so vai retornar dados da tabela indice....
geralmente coloco ON ( )
nao sei se ajuda....
EABREU 04/12/2012 16:29:55
#415434
Os nomes dos campos das outras tabelas são diferentes. Apenas tem o campo CodDekafix em comum.
Eu acrescentei os parenteses após os [Ô]On[Ô] mas também não funcionou.

Obrigado,

Edson
Página 1 de 2 [14 registro(s)]
Faça seu login para responder