Jump to content
Fórum Script Brasil
  • 0

MYSQL SELECT IN pegando lista em uma coluna de outra tabela


Question

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 to post
Share on other sites

1 answer to this question

Recommended Posts

  • 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 to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Answer this question...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.



  • Forum Statistics

    • Total Topics
      148887
    • Total Posts
      644948
×
×
  • Create New...