Pular para o conteúdo
  • Este tópico contém 9 respostas, 4 vozes e foi atualizado pela última vez 17 anos, 2 meses atrás por Avatar photoLeonardo Litz.
Visualizando 10 posts - 1 até 10 (de 10 do total)
  • Autor
    Posts
  • #84354
    Tiago_BB
    Participante

      Ola pessoal.. estou com uma dúvida em um select no sql.

      Acontece que tenho uma tabela com 3 campos! e em uma outra tabela… eu tenho os valores dos campos da tabela anterior e a descrição dos mesmos.

      Acontece que não estou conseguindo pegar a descrição dos 3 campos nessa tabela.

      Estou fazendo da seguinte forma:

      SELECT LOCAL_TBL1, (DESCR_LOCAL_TBL2) DESC_LOCAL, CELULA_TBL1, (DESCR_CELULA_TBL2) DESC_CELULA, RESTAURANTE_TBL1, (DESCR_RESTAURANTE_TBL2) DESC_RESTAURANTE
      FROM TBL2, TBL1
      WHERE CELULA_TBL1 = COD_TBL2
      AND LOCAL_TBL1 = COD_TBL2
      AND RESTAURANTE_TBL1 = COD_TBL2
      AND LOCAL_TBL1 >= 508
      AND LOCAL_TBL1 <= 60015 ORDER BY LOCAL_TBL1 Mas tras a mesma descrição para todos os campos, sendo que são registros diferentes! Alguem pode me ajudar!! Atenciosamente Tiago

      #84357
      Avatar photoLeonardo Litz
      Participante

        Thiago, seguinte, para cada campo vc deve declarar uma tabela da descricao, coloque um alias diferente para cada tabela, associe cada campo com uma tabela diferente.

        Vlw Leonardo Litz

        #84359
        Tiago_BB
        Participante

          Desculpe…

          Não entendi muito bem!!!

          “para cada campo vc deve declarar uma tabela da descricao”

          A estrutura que eu fiz ta certa??

          Obrigado pela ajuda!!

          Atte

          #84360
          Rodrigo Mesquita
          Participante

            o campo COD_TBL2 tem os códigos referentes a descricao da celula, local e restaurante?

            tente algo do tipo

            SELECT tb1.LOCAL_TBL1,
            tb2.DESCR_LOCAL_TBL2 DESC_LOCAL,
            tb1.CELULA_TBL1,
            tb2.DESCR_CELULA_TBL2 DESC_CELULA,
            tb1.RESTAURANTE_TBL1,
            tb2.DESCR_RESTAURANTE_TBL2 DESC_RESTAURANTE
            FROM TBL2 tb2, TBL1 tb1
            WHERE tb1.CELULA_TBL1 = tb2.COD_TBL2
            AND tb1.LOCAL_TBL1 = tb2.COD_TBL2
            AND tb1.RESTAURANTE_TBL1 = tb2.COD_TBL2
            AND tb1.LOCAL_TBL1 >= 508
            AND tb1.LOCAL_TBL1 <= 60015
            ORDER BY tb1.LOCAL_TBL1

            #84361
            Rodrigo Mesquita
            Participante

              da um desc nessas tabelas e coloca aqui

              #84363
              Manoel872
              Participante

                O problema dele e que ele não esta utilizando 3 joins… ele faz 1 join para trazer a informação das 3 descrição da mesma tabela… ele teria q fazer 3 joins para tabela 2 para trazer as 3 descriçoes.

                #84364
                Tiago_BB
                Participante

                  Resolvido.

                  Ficou assim:

                  SELECT TB1.LOCAL_TBL1, (LOC.DESCR_TBL2) DESCR_LOCAL, TB1.CELULA_TBL1, (CEL.DESCR_TBL2) DESC_CELULA,
                  TB1.RESTAURANTE_TBL1, (REST.DESCR_TBL2) DESCR_RESTAURANTE
                  FROM TBL1 TB1, TBL2 LOC, TBL2 CEL, TBL2 REST
                  WHERE TB1.LOCAL_TBL1 = LOC.COD_TBL2
                  AND TB1.CELULA_TBL1 = CEL.COD_TBL2
                  AND TB1.RESTAURANTE_TBL1 = REST.COD_TBL2

                  Agradeço o interesse de todos!!

                  #84365
                  Avatar photoLeonardo Litz
                  Participante

                    Thiago, veja se é isso que vc esta esperando:

                    SELECT LOCAL_TBL1,
                    (B.DESCR_LOCAL_TBL2) DESC_LOCAL,
                    CELULA_TBL1,
                    (A.DESCR_CELULA_TBL2) DESC_CELULA,
                    RESTAURANTE_TBL1,
                    (C.DESCR_RESTAURANTE_TBL2) DESC_RESTAURANTE
                    FROM TBL2 A,
                    TBL2 B,
                    TBL2 C,
                    TBL1,
                    WHERE CELULA_TBL1 = A.COD_TBL2
                    AND LOCAL_TBL1 = B.COD_TBL2
                    AND RESTAURANTE_TBL1 = C.COD_TBL2
                    AND LOCAL_TBL1 >= 508
                    AND LOCAL_TBL1 <= 60015
                    ORDER BY LOCAL_TBL1

                    Vlw Leonardo Litz

                    #84382
                    Rodrigo Mesquita
                    Participante

                      achei mesmo estranho so ter o codigo em uma tabela. Se faltar uma coluna no join o select nao funciona direito

                      #84387
                      Avatar photoLeonardo Litz
                      Participante

                        Não apenas se faltar um coluna, esta tabela referencia-se a tabela B tres vezes, para cada referenciamento vc deve declarar uma entidade. Se vc declarar apenas uma, só irá trazer os registros nos quais as 3 colunas da tabela A são iguais.

                      Visualizando 10 posts - 1 até 10 (de 10 do total)
                      • Você deve fazer login para responder a este tópico.