Fórum Ajuda em uma Questão em SQL #562454
18/09/2016
0
estou tentando realizar um select em várias tabelas e nao estou conseguindo, para ser mais preciso estou tentando selecionar todos os contatos de um usuário, e o sql executa mas retorna um conjunto vazio.
SELECT contato.nome, contato.apelido,
contato.aniversario, contato.notas,
contato.familia, contato.prefix, contato.sufix,
telefone.telefone, telefone.tipo,
email.email, endereco.endereco, endereco.tipo,endereco.rua,
endereco.cidade, endereco.estado, endereco.cep, ims.ims,
organizacao.organizacao, organizacao.departamento,
organizacao.titulo, foto.foto, categoria.categoria, url.rul
FROM contato, telefone, email, endereco, ims, organizacao, foto, categoria,url
WHERE contato.id = telefone.id_contato
AND contato.id = email.id_contato
AND contato.id = endereco.id_contato
AND contato.id = ims.id_contato
AND contato.id = organizacao.id_contato
AND contato.id = foto.id_contato
AND contato.id = categoria.id_contato
AND contato.id = url.id_contato
AND contato.id_usuario = 10
Vinicius
Curtir tópico
+ 0Post mais votado
18/09/2016
Faça o teste em todas elas com o mesmo ID CONTATO, para ver onde não retorna nada.
Outro jeito é você mudar o seu código.
Nele você colocou todos os relacionamento dentro do WHERE.
Tente colocá-los dentro do FROM, e use LEFT JOIN.
Consegui ser claro?
Grande abs
Luiz Santos
Gostei + 1
Mais Posts
18/09/2016
Jair N.
Gostei + 0
18/09/2016
Vinicius
Gostei + 0
19/09/2016
André Coimbra
SELECT
CONTATO.NOME
,CONTATO.APELIDO
,CONTATO.ANIVERSARIO
,CONTATO.NOTAS
,CONTATO.FAMILIA
,CONTATO.PREFIX
,CONTATO.SUFIX
,TELEFONE.TELEFONE
,TELEFONE.TIPO
,EMAIL.EMAIL
,ENDERECO.ENDERECO
,ENDERECO.TIPO
,ENDERECO.RUA
,ENDERECO.CIDADE
,ENDERECO.ESTADO
,ENDERECO.CEP
,IMS.IMS
,ORGANIZACAO.ORGANIZACAO,
,ORGANIZACAO.DEPARTAMENTO,
,ORGANIZACAO.TITULO,
,FOTO.FOTO,
,CATEGORIA.CATEGORIA
,URL.URL
FROM
CONTATO
LEFT JOIN TELEFONE ON
(CONTATO.ID = TELEFONE.ID_CONTATO)
LEFT JOIN EMAIL ON
(CONTATO.ID = EMAIL.ID_CONTATO)
LEFT JOIN ENDERECO ON
(CONTATO.ID = ENDERECO.ID_CONTATO)
LEFT JOIN IMS ON
(CONTATO.ID = IMS.ID_CONTATO)
LEFT JOIN ORGANIZACAO ON
(CONTATO.ID = ORGANIZACAO.ID_CONTATO)
LEFT JOIN FOTO ON
(CONTATO.ID = FOTO.ID_CONTATO)
LEFT JOIN CATEGORIA ON
(CONTATO.ID = CATEGORIA.ID_CONTATO)
LEFT JOIN URL ON
(CONTATO.ID = URL.ID_CONTATO)
WHERE
CONTATO.ID_USUARIO = 10
Para estas situações, procure usar o Inner, left, right ou full join... de uma pesquisada a mais a respeito desses comandos.
Atte.,
Gostei + 1
20/09/2016
Vinicius
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)