Mudar exibição de uma coluna - SQL

22/10/2015

0

Olá, tenho 2 tabelas: E_PROD e E_CATEGORIA.
Vou tentar exemplificar:

Tabela E_PROD
ID | Descrição| Categoria
01 | Martelo | 01
02 | Cadeira | 02
03 | Parafuso| 02

Tabela _E_CATEGORIA
ID | Descrição
01 | Ferramenta
02 | Móvel
03 | Ferragens


Quando uso o Select * from E_PROD obviamente na coluna Categoria aparece apenas o ID de cada uma delas.
Como faço para que nesta coluna apareça a Descrição da tabela Categoria?

Objetivo:
ID | Descrição| Categoria
01 | Martelo | Ferramenta
02 | Cadeira | Móvel
03 | Parafuso| Ferragens
Emanoel

Emanoel

Responder

Posts

23/10/2015

Luan Prates

nesse caso vc deverá usar o inner join ( inner join serve para fazer select em duas ou mais tabelas e trazer somente o que deseja )

no seu exemplo:

select p.id,
p.nome,
c.descricao

from e_prod p inner join e_categoria c on
p.id_categoria = c.id_categoria

___
Esse cogido trará todos os produtos e suas respectivas categorias
Responder

23/10/2015

Emanoel

Fiz algumas alterações:

select p.id,
p.descricao,
c.descricao

from e_prod p inner join e_categoria c on
p.categoria = c.id


E somente apareceu os dados onde não há campos Null.

Ah, esqueci de dizer.
Caso na tabela E_PROD o produto não tenha uma categoria (Seja Null, pq a Categoria não é obrigatória) como faço para ele aparecer também?

#EDIT:

Acho que consegui
select p.*,
p.descricao,
c.descricao

from e_prod p left join e_categoria c on
p.categoria = c.id


Usei o Left Join ao invés do Inner Join e consegui o que queria.
Ele repete algumas colunas, mas como a finalidade é colocar em uma tabela do Delphi eu consigo filtrar quais entrarão, basta colocar um Alias nas colunas.
Obrigado Luan!
Responder

Assista grátis a nossa aula inaugural

Assitir aula

Saiba por que programar é uma questão de
sobrevivência e como aprender sem riscos

Assistir agora

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar