Mudar exibição de uma coluna - SQL

22/10/2015

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

Respostas

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 Citar

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 Citar