Usuário com melhor resposta
exibir todas os registros da consulta exata!

Pergunta
-
Seguinte tenho uma pesquisa da seguinte forma:
Em tela:
1 combo com 5 registros(estou utilizando exemplos para ficar mais facil)Combo
1-Azul
2-Vermelho
3-Verde
4-Amarelo
5-PretoAssim que seleciona 1 cor ele vai para uma tabela(em tela) para apresentar as selecionadas:
Cores dos tenis:
1-Azul
3-VerdeEm banco de dados:
Tabelas de Tenis, a de relacionamento e a de cores.
Tenis contendo id e nome
1-Adidas
2-Nike
3-ReebokRelacionamento contendo id_camisa e id_cor
1 - 1
1 - 2
2 - 1
2 - 2
2 - 3
3 - 5Cor id e nome
1-Azul
2-Vermelho
3-Verde
4-Amarelo
5-PretoMinha duvida é a seguinte, cada vez que eu coloco 1 filtro de cor nesta tabela por exemplo:
Azul
Tem que exibir os tênis:
Adidas e Nike após inserir o Azul na tabela até ai é tranquilo tá funcionando
Assim que é inserido o Verde
Quero que seja exibido apenas o Nike
O que tá acontecendo é que esta exibindo o Adidas e Nike, por que no select esta sendo utilizado o where id_cor in (1, 3)
A minha duvida é como faço para que a consulta só me retorne os tênis que tem todas as cores da consulta?
- Editado Shiguetaka sexta-feira, 6 de junho de 2014 01:02
Respostas
-
Olá amigo, você vai precisar postar o seu código...
Mas de qualquer jeito, na sua query deve estar:
SELECT CAMPO1, CAMPO2 FROM TABELA WHERE IDCOR = 1
E não
SELECT CAMPO1, CAMPO2 FROM TABELA WHERE IDCOR IN (1,2,3)
- Sugerido como Resposta Luiz Felipe S. T. Costa segunda-feira, 9 de junho de 2014 16:43
- Marcado como Resposta Ricardo Barbosa Cortes segunda-feira, 9 de junho de 2014 17:20
-
Bom dia,
Shiguetaka, experimente mais ou menos dessa forma:
select t.id_tenis, t.nome_tenis from Relacionamento as r inner join Tenis as t on t.id_tenis = r.id_tenis where r.id_cor in (1, 3) group by t.id_tenis, t.nome_tenis having count(*) = 2
Espero que ajude.
Assinatura: http://www.imoveisemexposicao.com.br
- Sugerido como Resposta Luiz Felipe S. T. Costa segunda-feira, 9 de junho de 2014 16:43
- Marcado como Resposta Ricardo Barbosa Cortes segunda-feira, 9 de junho de 2014 17:20
Todas as Respostas
-
Olá amigo, você vai precisar postar o seu código...
Mas de qualquer jeito, na sua query deve estar:
SELECT CAMPO1, CAMPO2 FROM TABELA WHERE IDCOR = 1
E não
SELECT CAMPO1, CAMPO2 FROM TABELA WHERE IDCOR IN (1,2,3)
- Sugerido como Resposta Luiz Felipe S. T. Costa segunda-feira, 9 de junho de 2014 16:43
- Marcado como Resposta Ricardo Barbosa Cortes segunda-feira, 9 de junho de 2014 17:20
-
Bom dia,
Shiguetaka, experimente mais ou menos dessa forma:
select t.id_tenis, t.nome_tenis from Relacionamento as r inner join Tenis as t on t.id_tenis = r.id_tenis where r.id_cor in (1, 3) group by t.id_tenis, t.nome_tenis having count(*) = 2
Espero que ajude.
Assinatura: http://www.imoveisemexposicao.com.br
- Sugerido como Resposta Luiz Felipe S. T. Costa segunda-feira, 9 de junho de 2014 16:43
- Marcado como Resposta Ricardo Barbosa Cortes segunda-feira, 9 de junho de 2014 17:20