INNER JOIN

ADILSOO 29/11/2012 21:22:23
#415094
Gente boa noite, estou tentando fazer um INNER JOIN, só que da erro, oque será que está errado?
 sSQL = [Ô]SELECT * FROM autorizadas INNER JOIN assistencias ON autorizadas.codassis = assistencias.codassis INNER JOIN marcas ON autorizadas.codmarca = autorizadas.codmarca[Ô]
ADILSOO 29/11/2012 22:06:23
#415100
Deu a mesma coisa, o erro é, Erro de sintaxe, operador faltando, segue o erro... Estranho que eu já tenho esse mesmo código funcionando, só que em MySQL, esse é em Access
KERPLUNK 29/11/2012 22:12:07
#415101
Use um join natural:
SELECT * FROM autorizadas, marcas, assistencias where
autorizadas.codassis = assistencias.codassis and
autorizadas.codmarca = autorizadas.codmarca
MARCELO.TREZE 29/11/2012 22:18:50
#415102
bom tente assim

sSQL = [Ô]SELECT A.*,B.*,C.* FROM autorizadas A INNER JOIN ( assistencias B INNER JOIN marcas C ON B.codmarca = C.codmarca) ON A.codassis = B.codassis[Ô]


AJSO 29/11/2012 23:31:10
#415105
Caro ADILSOO

Seu SEGUNDO INNER JOIN está sendo feito com a mesma tabela e campo


Citação:

INNER JOIN marcas ON autorizadas.codmarca = autorizadas.codmarca



Será que não seria com [Ô]marcas.codmarca [Ô]

Boa Sorte
ADILSOO 02/12/2012 15:49:08
#415266
Gente é assim, vou explicar oque eu estou tentando fazer, parece simples mas nao estou conseguindo, haha, bom, eu tenho um textbox um combobox e um grid, no combo eu carrego todas as assistencias, e quando seleciono, eu vou no cadastro de assistencias e pego o código da mesma, e jogo no textbox, aí quando eu clico no botão buscar, ele tem que ir no cadastro de autorizadas, ver qual assistencia presta serviços para qual marca, e adicionar no grid, até aí certo, mas no caso, no cadastro de autorizadas eu tenho os campos [Ô]codassis e codmarca[Ô], ele até adiciona no grid os códigos de cada marca, mas no caso eu teria que fazer um Inner Join para eu adicionar o nome da marca e telefone tambem, mas está dificil...

Esse código está no botão buscar..
 sSQL = [Ô]SELECT * FROM autorizadas INNER JOIN assistencias ON autorizadas.codassis = assistencias.codassis INNER JOIN marcas ON autorizadas.codmarca = marcas.codmarca WHERE codassis = [Ô] & txtcodassis.Text & [Ô][Ô]
Set rs = Conexao.Execute(sSQL)

Do While Not rs.EOF = True
gridmarca.AddItem [Ô][Ô] & vbTab & rs!codmarca
rs.MoveNext
Loop
MARCELO.TREZE 03/12/2012 16:48:15
#415334
como eu disse seria assim

sSQL = [Ô]SELECT * FROM autorizadas INNER JOIN (assistencias  INNER JOIN marcas ON autorizadas.codmarca = marcas.codmarca ) ON autorizadas.codassis = assistencias.codassis WHERE autorizadas.codassis = [Ô] & txtcodassis.Text & [Ô][Ô]
Set rs = Conexao.Execute(sSQL)
Do While Not rs.EOF = True
gridmarca.AddItem [Ô][Ô] & vbTab & rs([Ô]autorizadas.codmarca[Ô])
rs.MoveNext
Loop


acho que isso vai funcionar

ADILSOO 03/12/2012 21:44:34
#415347
Assim ele da erro de sintaxe na operação join
OMAR2011 03/12/2012 22:15:42
#415349
Resposta escolhida
Adilsoo,se você pensar e observar bem a sua consulta não é nada mais que uma consulta simples.Não tem a necessidade de usar INNER JOIN se
todos os códigos estão gravados na Tabela AUTORIZADAS.Inner join nesta consulta não tem objetivo nenhum.Para usar Inner join com está escrito
tem que ter outros campos das tabelas relacionadas.
Olha isto.
Do While Not rs.EOF = True
gridmarca.AddItem [Ô][Ô] & vbTab & rs!codmarca
rs.MoveNext
Loop
Isto é da Tabela Autorizadas.
Então.

sSQL = [Ô]SELECT * FROM autorizadas WHERE codassis = [Ô] & txtcodassis.Text & [Ô][Ô]
Set rs = Conexao.Execute(sSQL)

Do While Not rs.EOF = True
gridmarca.AddItem [Ô][Ô] & vbTab & rs!codmarca
rs.MoveNext
Loop

Isto no meu entendimento INNER JOIN (assistencias INNER JOIN marcas ON autorizadas.codmarca = marcas.codmarca ) ON autorizadas.codassis = assistencias.codassis não
tem objetivo,o que você que e o CodMarca da tabela Autorizada.

Valeu.
ADILSOO 04/12/2012 05:59:45
#415354
Amigo, sim, se fosse somente o campo codmarca sim, seria uma consulta simples, o problema é que eu tenho que adicionar no grid o nome da marca e o telefone da mema, que por vez esta na tabela marcas e nao na autorizadas, nesse caso precisa sim do inner join, o problema é q em MySQL vai de boa.
Página 1 de 4 [33 registro(s)]
Tópico encerrado , respostas não são mais permitidas