Ir para conteúdo
Fórum Script Brasil
  • 0

MYSQL SELECT IN pegando lista em uma coluna de outra tabela


ledumelo

Pergunta

Amigos, preciso da ajuda de vocês pois nada encontrei que me tirasse essa duvida.

Tenho uma tabela LISTA que tem uma coluna contendo uma lista de chaves dentro dessa coluna.

-----------------------------------------
id nome chaves

1 Luiz 1;2;3;4

2 Mario 1;3;4

3 Paulo 3;4

Tenho outra tabela chamada ITENS

--------------------------------

Id tem

1 BONE

2 MEIA

3 CALCA

4 CAMISA

O problema que estou tendo é que não consigo trazer a lista com o SELECT IN, pois esta trazendo apenas o primeiro item da lista.

SELECT id,item FROM ITENS WHERE id IN 
(SELECT trim(replace (chaves,';',',')) 
FROM LISTA 
where id= 2) 

Resultado errado:

-----------------------

id item

1 BONE

Os demais não aparecem.

 

Link para o comentário
Compartilhar em outros sites

1 resposta a esta questão

Posts Recomendados

  • 0

o comando não está errado, mas a lógica sim

só para exemplificar

SELECT ID, item FROM ITENS WHERE ID IN
(SELECT trim(replace (chave,';',','))
FROM LISTA where id = 2)

Veja que na sentença acima, voce quer procurar o ID na tabela LISTA ...como voce não definiu qual é o valor do ID ele começa na Tabela ITENS com o numero 1, mas como voce definiu que na Tabela LISTA voce quer que procure o ID de Valor 2 o resultado é somente um

1 BONE

agora se voce substituir o ID por um nuemro...

SELECT ID, item FROM ITENS WHERE 1 IN
(SELECT trim(replace (chave,';',','))
FROM LISTA where id = 2)

o resultado será :

1    BONE
2    MEIA
3    CALÇA
4    CAMISA

entretanto isso ainda não seria o correto...  pois voce ainda não entendeu como funciona a clausula IN corretamente dentro de uma Select com Subquery

Veja nesses links o uso correto dessa clausula

https://www.google.com.br/search?ei=ks_oXvrmDsrA5OUP54ah4Aw&q=in+mysql+select&o que=+in+mysql&gs_lcp=CgZwc3ktYWIQARgBMgIIADICCAA6BAgAEEdQ4vEFWOLxBWDqggZoAHABeACAAX6IAX6SAQMwLjGYAQCgAQGqAQdnd3Mtd2l6&sclient=psy-ab

abraço

 

Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,3k
    • Posts
      652,4k
×
×
  • Criar Novo...