Select em duas Tabelas

1. Select em duas Tabelas

Luiz Palini Neto
lpalini

(usa openSUSE)

Enviado em 12/02/2019 - 21:45h

Tenho a seguinte situação: São duas tabelas, Classificação e Defeitos.

Na tabela Classificação tenho uma coluna "ID" e outra "FORNO", entre outras

Na tabela Defeitos, tenho entre outras colunas, a coluna ID_Classificação, que se refere a coluna ID da tabela Classificação, porém por algum motivo, quem fez o BD não relacionou as tabelas.

Preciso de um select, que retorne todos os campos da tabela Defeitos, mais o campo Forno da linha correspondente na tabela Classificação.

Qual a melhor forma de fazer isso, considerando que tenho cerca de 1.000.000 de registros em cada tabela?

O BD é PostgreSQL 9.6.


  


2. Re: Select em duas Tabelas

Rodrigo Leutz
denver

(usa Arch Linux)

Enviado em 12/02/2019 - 21:53h

select defeitos.*,classificacao.forno from defeitos inner join cassificacao on defeitos.id_classificacao=cassificacao.id;

veja se isso funciona

------------------------------------------------------------------------
https://www.uware.com.br
Arch


3. Re: Select em duas Tabelas

Luiz Palini Neto
lpalini

(usa openSUSE)

Enviado em 13/02/2019 - 22:53h

Primeiramente obrigado pela ajuda;
Tentei aqui, mas acabei me deparando com outro problema que eu não tinha percebido, o Campo ID da tabela Classificação é do tipo Integer e o campo Id_Classificação da tabela Defeitos é do tipo character varying, por isso deu o erro abaixo:

ERROR: operator does not exist: character varying = integer

denver escreveu:

select defeitos.*,classificacao.forno from defeitos inner join cassificacao on defeitos.id_classificacao=cassificacao.id;

veja se isso funciona

------------------------------------------------------------------------
https://www.uware.com.br
Arch





4. Re: Select em duas Tabelas

Rodrigo Leutz
denver

(usa Arch Linux)

Enviado em 14/02/2019 - 02:01h

tenta esse


select defeitos.*,classificacao.forno from defeitos inner join cassificacao on cast(defeitos.id_classificacao as integer)=cassificacao.id;
------------------------------------------------------------------------
https://www.uware.com.br
Arch


5. Re: Select em duas Tabelas

Luiz Palini Neto
lpalini

(usa openSUSE)

Enviado em 14/02/2019 - 20:52h

Novamente obrigado pela ajuda;

Eu ja tinha tentado essa alternativa, mas deu o seguinte erro, o que pode ser?

ERROR: invalid input syntax for integer: " "
SQL state: 22P02


denver escreveu:

tenta esse


select defeitos.*,classificacao.forno from defeitos inner join cassificacao on cast(defeitos.id_classificacao as integer)=cassificacao.id;
------------------------------------------------------------------------
https://www.uware.com.br
Arch





6. Re: Select em duas Tabelas

Fabiano
fpires

(usa Debian)

Enviado em 15/02/2019 - 10:02h

lpalini escreveu:

Novamente obrigado pela ajuda;

Eu ja tinha tentado essa alternativa, mas deu o seguinte erro, o que pode ser?

ERROR: invalid input syntax for integer: " "
SQL state: 22P02


denver escreveu:

tenta esse


select defeitos.*,classificacao.forno from defeitos inner join cassificacao on cast(defeitos.id_classificacao as integer)=cassificacao.id;
------------------------------------------------------------------------
https://www.uware.com.br
Arch




Chutando aqui, mas parece que alguns registros da tabela defeitos tem o campo id_classificação vazio (ou preenchido com espaços) e está dando erros na hora da conversão.


7. Re: Select em duas Tabelas

Luiz Palini Neto
lpalini

(usa openSUSE)

Enviado em 15/02/2019 - 21:03h

fpires escreveu:

Chutando aqui, mas parece que alguns registros da tabela defeitos tem o campo id_classificação vazio (ou preenchido com espaços) e está dando erros na hora da conversão.


Na Lata, filtrei os registros e tinha 11 com campo vazio. Agora deu certo. Obrigado pela ajuda. Bom final de semana.






Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts