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

Subquery


ESerra

Pergunta

Preciso entender porque o seguinte não funciona:

SELECT descricao FROM servicos WHERE id IN (SELECT servicos FROM geral WHERE id = '1')
Nesse caso, ele sempre retorna apenas uma linha como resultado, quando deveria retornar duas, a subquery:
SELECT servicos FROM geral WHERE id = '1'
Retorna exatamente: 1,3 Então, a minha idéia é que buscasse a coluna descricao da tabela serviços em que o id fosse igual a 1 e 3, mas não retorna, só retorna o primeiro, ou seja, o id igual a 1, se eu altero no BD e inverto (3,1) ele busca o do id igual a 3 e ignora o igual a 1, se eu jogo direto:
SELECT descricao FROM servicos WHERE id IN (1,3)
Retorna o resultado da forma correta, buscando os dois ids (1 e 3), não estou entendendo o porque disso, inclusive se eu faço duas querys, ou seja, primeiro:
SELECT servicos FROM geral WHERE id = '1'
Ai resgato os dado e uso esses mesmos dados na segunda:
SELECT descricao FROM servicos WHERE id IN ($dados_resgatados_da_primeira)
Também funciona perfeitamente... EDIT: Despois de trocar umas idéias me deram a dica de usar INSTR, a query ficou:
SELECT descricao FROM servicos WHERE instr((SELECT servicos FROM geral WHERE id = '1'),id)

Com isso dai funcionou perfeitamente.

EDIT 2: Já achei um problema na solução, ela retorna falsos positivos...

Editado por ESerra
Link para o comentário
Compartilhar em outros sites

2 respostass a esta questão

Posts Recomendados

  • 0

Oi, 'ESerra'

Uma solução possível para seu problema seria com o uso de join. Assim:

SELECT descricao FROM servicos s
INNER JOIN geral g ON g.servicos = s.id
WHERE g.id '1'

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,1k
    • Posts
      651,8k
×
×
  • Criar Novo...