Array
(
)

Mudar exibição de uma coluna - SQL

Emanoel
   - 22 out 2015

Olá, tenho 2 tabelas: E_PROD e E_CATEGORIA.
Vou tentar exemplificar:
Tabela E_PROD
Citação:
ID | Descrição| Categoria
01 | Martelo | 01
02 | Cadeira | 02
03 | Parafuso| 02

Tabela _E_CATEGORIA
Citação:
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:
Citação:
ID | Descrição| Categoria
01 | Martelo | Ferramenta
02 | Cadeira | Móvel
03 | Parafuso| Ferragens

Luan Prates
|
MVP
    23 out 2015

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

Emanoel
   - 23 out 2015

Fiz algumas alterações:

Citação:
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

Citação:
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!