SELECT in two different tables with variables of the same name

Asked

Viewed 112 times

1

I have the following consultation to be made:

"SELECT DISTINCT
        andamento_processual.licenciamento_cod,  
        andamento_processual.inter_simplificada_cod, 
        andamento_processual.inter_pretendida_cod, 
        andamento_processual.processo_numero,
        andamento_processual.processo_situacao,
        licenciamento.licenciamento_empreendimento_nome,
        empreendimento.empreendedor_nome_empreendimento,
        intervencao_amb_pretendida.inter_pretendida_cod,
        intervencao_amb_pretendida.intervencao_nome_empreendedor, <---
        intervencao_amb_simplificada.inter_simplificada_cod,
        intervencao_amb_simplificada.intervencao_nome_empreendedor <----
        FROM 
        andamento_processual 
        LEFT OUTER JOIN licenciamento ON andamento_processual.licenciamento_cod = licenciamento.licenciamento_cod
        LEFT OUTER JOIN empreendimento ON licenciamento.licenciamento_empreendimento_cod = empreendimento.empreendimento_cod
        LEFT OUTER JOIN intervencao_amb_pretendida ON andamento_processual.inter_pretendida_cod = intervencao_amb_pretendida.inter_pretendida_cod
        LEFT OUTER JOIN intervencao_amb_simplificada ON andamento_processual.inter_simplificada_cod= intervencao_amb_simplificada.inter_simplificada_cod
        WHERE 
        andamento_processual.processo_numero";

My problem is that there are two variables of the same name only in different tables, I put a arrow pointing to them. When I put to display in the table, only show the results of "intervencao_amb_simplified.intervenca_enterprising name".

I tried to do it this way, inside WHILE:

if($inter_simplificada_cod){

        $nomeSimplEmpreendedor = $row['intervencao_nome_empreendedor'];

      }else if($inter_pretendida_cod){

        $nomePretEmpreendedor = $row['intervencao_nome_empreendedor'];

      }

But it didn’t work! There’s a way I can solve this without changing the variable name in the two tables?

  • 1

    I may have a bit of a bad view but the lines you pointed out have the same field name but are from different tables.

  • is because one variable is saved in the table "intervencao_amb_desired" and another in the "intervencao_amb_simplified", I put database, but they are tables. I was wrong, I tidied up here

1 answer

3


You need to use a middle name alias to return it:

    SELECT DISTINCT
        andamento_processual.licenciamento_cod,  
        andamento_processual.inter_simplificada_cod, 
        andamento_processual.inter_pretendida_cod, 
        andamento_processual.processo_numero,
        andamento_processual.processo_situacao,
        licenciamento.licenciamento_empreendimento_nome,
        empreendimento.empreendedor_nome_empreendimento,
        intervencao_amb_pretendida.inter_pretendida_cod,
        -- abaixo, mudando o nome utilizando 'as' 
        intervencao_amb_pretendida.intervencao_nome_empreendedor as intervencao_nome_empreendedor_pretendida, 
        intervencao_amb_simplificada.inter_simplificada_cod,
        -- abaixo mudando o nome sem usar o 'as'
        intervencao_amb_simplificada.intervencao_nome_empreendedor intervencao_nome_empreendedor_simplificada
    FROM 
        andamento_processual 
        LEFT OUTER JOIN licenciamento ON andamento_processual.licenciamento_cod = licenciamento.licenciamento_cod
        LEFT OUTER JOIN empreendimento ON licenciamento.licenciamento_empreendimento_cod = empreendimento.empreendimento_cod
        LEFT OUTER JOIN intervencao_amb_pretendida ON andamento_processual.inter_pretendida_cod = intervencao_amb_pretendida.inter_pretendida_cod
        LEFT OUTER JOIN intervencao_amb_simplificada ON andamento_processual.inter_simplificada_cod= intervencao_amb_simplificada.inter_simplificada_cod
    WHERE 
        andamento_processual.processo_numero

With this, you will receive in the return resultset both values.

  • 1

    IT WORKED, I DIDN’T KNOW YOU COULD DO IT LIKE THIS. THANK YOU!

Browser other questions tagged

You are not signed in. Login or sign up in order to post.