dificuldade com select simples
pessoal,
to com dificuldade num select.
eh o seguinte.
tenho uma tabela de contatos, e uma tabela de cidades.
na tabela contatos eu tenho um campo onde fica o codigo da cidade correspondente.
O detalhe é que não é obrigatório o preenchimento do campo cidade.
quando eu faço um
´ select * from table_contatos a, table_cidades b where a.cod_cidade = b.codigo ´, os registros que nao tiveram a cidade cadastrada nao aparecem!!!
como resolvo isso, sem ter de colocar a cidade em todos os registros?
to com dificuldade num select.
eh o seguinte.
tenho uma tabela de contatos, e uma tabela de cidades.
na tabela contatos eu tenho um campo onde fica o codigo da cidade correspondente.
O detalhe é que não é obrigatório o preenchimento do campo cidade.
quando eu faço um
´ select * from table_contatos a, table_cidades b where a.cod_cidade = b.codigo ´, os registros que nao tiveram a cidade cadastrada nao aparecem!!!
como resolvo isso, sem ter de colocar a cidade em todos os registros?
Tek
Curtidas 0
Respostas
Prosystem
22/05/2003
Amigo nunca tentei isto, mas em todo caso tente apos o where colocar :
and a.cidade=´´
Talvez de certo.
Espero ter ajudado.
and a.cidade=´´
Talvez de certo.
Espero ter ajudado.
GOSTEI 0
Carnette
22/05/2003
pessoal,
to com dificuldade num select.
eh o seguinte.
tenho uma tabela de contatos, e uma tabela de cidades.
na tabela contatos eu tenho um campo onde fica o codigo da cidade correspondente.
O detalhe é que não é obrigatório o preenchimento do campo cidade.
quando eu faço um
´ select * from table_contatos a, table_cidades b where a.cod_cidade = b.codigo ´, os registros que nao tiveram a cidade cadastrada nao aparecem!!!
como resolvo isso, sem ter de colocar a cidade em todos os registros?
Pra não complicar muito a ´programação...CRIE uma cidade com código 0 ou vazio....
GOSTEI 0
Tek
22/05/2003
valeu, mas não posso colocar um codigo vazio.
resolveria, mas nao posso.
estou criando relatórios para uma aplicação já existente. não posso mudar o fonte da aplicação e nem mexer na estrutura do BD.
obrigado...
resolveria, mas nao posso.
estou criando relatórios para uma aplicação já existente. não posso mudar o fonte da aplicação e nem mexer na estrutura do BD.
obrigado...
GOSTEI 0
Rafael Heise
22/05/2003
Para resolver seu problema, você deve usar
LEFT OUTER JOIN ....
SELECT CLI.NOME, CID.CIDADE FRO CLIENTES CLI
LEFT OUTER JOIN CIDADES CID ON (CLI.CDCIDADE = CID.CDCIDADE)
....
abraços...
LEFT OUTER JOIN ....
SELECT CLI.NOME, CID.CIDADE FRO CLIENTES CLI
LEFT OUTER JOIN CIDADES CID ON (CLI.CDCIDADE = CID.CDCIDADE)
....
abraços...
GOSTEI 0
Cac2000
22/05/2003
É só um jeito mais simples de escrever, a resposta anterior está certa:
select *
from table_contatos a, table_cidades b
where a.cod_cidade *= b.codigo
O asterisco do lado do sinal de igual indica todos os registros da tabela de contato, mesmo que não ache o correspondente na tabela de cidades
select *
from table_contatos a, table_cidades b
where a.cod_cidade *= b.codigo
O asterisco do lado do sinal de igual indica todos os registros da tabela de contato, mesmo que não ache o correspondente na tabela de cidades
GOSTEI 0
Leomurray
22/05/2003
Depende do banco de dados...
No ORACLE por exemplo, além do outer join, vc pode usar isso:
select *
from table_contatos a, table_cidades b
where a.cod_cidade(+) = b.codigo
Mas na verdade, o que eu escrevi e o que o cac2000 escreveu são outros modos de escrever o que o Zerneo escreveu...
Abraços...
No ORACLE por exemplo, além do outer join, vc pode usar isso:
select *
from table_contatos a, table_cidades b
where a.cod_cidade(+) = b.codigo
Mas na verdade, o que eu escrevi e o que o cac2000 escreveu são outros modos de escrever o que o Zerneo escreveu...
Abraços...
GOSTEI 0
Jeancamila
22/05/2003
Tek, tente isso
select *
from table_contatos a, table_cidades b
where (a.cod_cidade = b.codigo or a.cod_cidade is null)
Atensiosamente
Jean Morais
Analista de Sistemas - AIX Sistemas
select *
from table_contatos a, table_cidades b
where (a.cod_cidade = b.codigo or a.cod_cidade is null)
Atensiosamente
Jean Morais
Analista de Sistemas - AIX Sistemas
GOSTEI 0