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
Tabela _E_CATEGORIA
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:
Vou tentar exemplificar:
Tabela E_PROD
ID | Descrição| Categoria
01 | Martelo | 01
02 | Cadeira | 02
03 | Parafuso| 02
01 | Martelo | 01
02 | Cadeira | 02
03 | Parafuso| 02
Tabela _E_CATEGORIA
ID | Descrição
01 | Ferramenta
02 | Móvel
03 | Ferragens
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
01 | Martelo | Ferramenta
02 | Cadeira | Móvel
03 | Parafuso| Ferragens
Emanoel
Curtir tópico
+ 0
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
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:
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
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!
select p.id,
p.descricao,
c.descricao
from e_prod p inner join e_categoria c on
p.categoria = c.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
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
Clique aqui para fazer login e interagir na Comunidade :)