INNER JOIN
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[Ô]
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
Use um join natural:
SELECT * FROM autorizadas, marcas, assistencias where
autorizadas.codassis = assistencias.codassis and
autorizadas.codmarca = autorizadas.codmarca
SELECT * FROM autorizadas, marcas, assistencias where
autorizadas.codassis = assistencias.codassis and
autorizadas.codmarca = autorizadas.codmarca
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[Ô]
Caro ADILSOO
Seu SEGUNDO INNER JOIN está sendo feito com a mesma tabela e campo
Será que não seria com [Ô]marcas.codmarca [Ô]
Boa Sorte
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
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..
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
como eu disse seria assim
acho que isso vai funcionar
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
Assim ele da erro de sintaxe na operação join
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.
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.
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.
Tópico encerrado , respostas não são mais permitidas