SELECT COM CHAVE ESTRANGEIRA
Bom dia galera.
Estou com uma d uvida aqui
PReciso fazer um select para povoar um grid de produtos. Na tabela produtos tenho algumas chave estrangeiras(codgurpo,codsubgrupo etc)
Porém elas não são obrigatórias. Como eu poderia resolver isso na minha classe de um jeito organizado que não fique muito procedural ??
Pois se eu fizer com inner join o registro não aparecerá caso por exemplo o codgrupo não tenha valor.
Estou com uma d uvida aqui
PReciso fazer um select para povoar um grid de produtos. Na tabela produtos tenho algumas chave estrangeiras(codgurpo,codsubgrupo etc)
Porém elas não são obrigatórias. Como eu poderia resolver isso na minha classe de um jeito organizado que não fique muito procedural ??
Pois se eu fizer com inner join o registro não aparecerá caso por exemplo o codgrupo não tenha valor.
Faz com left join.
Boa tarde. Vou pesquisar. Nunca usei este comando. Ele prioriza o que esta na tabela da esquerda da instrução ?
Poderia me dar um exemplo ?
Poderia me dar um exemplo ?
Vou te explicar.
Tabela Produtos
Codigo| Nome | Grupo
1 | Maçã | 1
2 | Pera |
3 | Abacate | 2
Tabela Grupos
Codigo| Nome
1 | Maçãs
2 |Abacates
Bom, irei fazer o Select com o inner join, que me retornará somente o que possui referência.
Select produtos.codigo, produtos.nome, grupos.nome
from produtos
inner join grupos on grupos.codigo = produtos.grupo
Neste caso, irá retornar o seguinte:
Codigo| Nome | Grupo
1 | Maçã | Maçãs
3 | Abacate | Abacates
-------------------------------------------------------------------------------------------------------------------------------------------------------------------
Com o Left Join
Select produtos.codigo, produtos.nome, produtos.grupo
from produtos
left join grupos on grupos.codigo = produtos.grupo
Neste caso me retornará tudo, tendo grupo ou não.
Codigo| Nome | Grupo
1 | Maçã | Maçãs
2 | Pera |
3 | Abacate | Abacates
Abraços
Tabela Produtos
Codigo| Nome | Grupo
1 | Maçã | 1
2 | Pera |
3 | Abacate | 2
Tabela Grupos
Codigo| Nome
1 | Maçãs
2 |Abacates
Bom, irei fazer o Select com o inner join, que me retornará somente o que possui referência.
Select produtos.codigo, produtos.nome, grupos.nome
from produtos
inner join grupos on grupos.codigo = produtos.grupo
Neste caso, irá retornar o seguinte:
Codigo| Nome | Grupo
1 | Maçã | Maçãs
3 | Abacate | Abacates
-------------------------------------------------------------------------------------------------------------------------------------------------------------------
Com o Left Join
Select produtos.codigo, produtos.nome, produtos.grupo
from produtos
left join grupos on grupos.codigo = produtos.grupo
Neste caso me retornará tudo, tendo grupo ou não.
Codigo| Nome | Grupo
1 | Maçã | Maçãs
2 | Pera |
3 | Abacate | Abacates
Abraços
Obrigado colega, deu certo!
Tópico encerrado , respostas não são mais permitidas