ledumelo Postado Junho 6, 2020 Denunciar Share Postado Junho 6, 2020 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. Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Jhonas Postado Junho 16, 2020 Denunciar Share Postado Junho 16, 2020 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 Citar Link para o comentário Compartilhar em outros sites More sharing options...
Pergunta
ledumelo
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
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.