Select IN(select) pegando só o primeiro id da coluna

4 respostas Resolvido
primefacesmysqlsqljava
zicky23

Estou com uma dúvida, meu Select não está se comportando de forma que eu esperava.

Segue o Select como seria se fosse fixa os ID’s dentro do IN (assim funciona):

select id_violencia,nome_violencia from lista_violencias 
                                   where id_violencia IN(1,2,3,4,5)

e esse é o Select que estou tentando e está voltando apenas o primeiro ID’s de uma coluna string chamada selTipoViolencia que contém 1,2,3,4,5,6,7,8:

select id_violencia,nome_violencia from lista_violencias 
                          where id_violencia IN(select selTipoViolencia
       		                 from ocorrencias where id_ocorrencia = 2)

Como resolver esse problema?

4 Respostas

F

Você está trazendo apenas um TIPOVIOLENCIA em seu segundo select, logo o IN está se comportando da maneira correta. Reveja seu segundo SELECT.

Dragoon

Tem como você mostrar os dados gravados, tipo umas 3 linhas? eu to achando que você ta comparando errado, tipo 1,2,3,4,5,7,8 sendo uma String e não um conjunto de linhas em que cada linha tem os número sozinho.

F

Seria bom postar a estrutura das tabelas envolvidas.

O fato é que “select * from ocorrencias where id_ocorrencia = 2” retorna apenas um registro (visto que a PK é ID_OCORRENCIA).

zicky23
Solucao aceita

pois na verdade a coluna selTipoViolencia possui os dados 1,2,3,4,5 na mesma linha. esse era o meu problema, mas agora vou criar uma tabela separada para cadastrar a id_ocorrencia e a id_tipo_violencia, assim fica facil de resgatar os dados.

Valeu

Criado 19 de julho de 2016
Ultima resposta 20 de jul. de 2016
Respostas 4
Participantes 3