none
Instrução em SQL RRS feed

  • Pergunta

  • Galera,
     
    Estou com um problema:
     
    Na tabela ALUNO tem o campo es_codigo
    Na tabela Servico tem o campo es_codigo
     
    Como posso comparar o es_codigo da tabela aluno com es_codigo da tabela servico?
     
    SQL = "SELECT Aluno.*, Login.*, Aluno.nome as anome, Curso.nome AS curso, Aluno.codigo, Login.email AS lmail "&_
       "FROM Aluno LEFT JOIN "&_
          "Login ON Aluno.codigo = Login.al_codigo LEFT OUTER JOIN "&_
          "Curso ON Aluno.cr_codigo = Curso.codigo "&_
       "WHERE (Aluno.codigo = '" & alcodigo & "')"
    set rsAluno = openSql(SQL)

    SQL = "SELECT servico.codigo,servico.nome,SD.dtprazo as prazo,SD.docexige," & _
       " parcela.pa,parcela.valor,SD.dtprazoini,SD.dtprazofim" & _
       " FROM (servico LEFT JOIN parcela ON servico.codigo=parcela.se_codigo) LEFT JOIN ServicoDocumento As SD ON servico.codigo=SD.se_codigo" & _
       " WHERE SD.aass='"+cSemAtu+"'" & _
       " ORDER BY servico.nome"
     
     
    Obrigado
    terça-feira, 29 de maio de 2007 13:01

Todas as Respostas

  • Caro Rene,

     

       A instrução JOIN retorna todos os resultados onde as duas chaves são correspondentes. Para os tipos de Join, temos:

      

       INNER JOIN:   Todas as linhas onde as chaves são correspondentes serão retornadas (default).

       LEFT JOIN:     Todas as linhas da tabela à esquerda serão retornadas. Aquelas que não encontrarem suas correspondentes na tabela à direita terão como resultado o valor NULL.

       RIGHT JOIN:     Todas as linhas da tabela à direita serão retornadas. Aquelas que não encontrarem suas correspondentes na tabela à esquerda terão como resultado o valor NULL.

     

       No caso da sua dúvida, caso deseje somente retornar os campos relacionados pelo código, basta fazer o seguinte:

     

         SELECT A.Login AS LoginA, A.Nome AS NomeA, A.Email AS EmailA
                          B.Login AS LoginB, B.Nome AS NomeB, B.Email AS EmailB
         FROM ALUNO AS A INNER JOIN SERVICO AS B
         ON A.es_codigo = B.es_codigo
         Where A.Codigo = 1234
      
         Seria só isso mesmo que vc precisa ?
     
         Um abraço.
       
    terça-feira, 5 de junho de 2007 15:27