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

Problema Com Select


Guilherme Tomita

Pergunta

Bom dia pessoal...

Seguinte...

Eu tenho uma tabela hoteis(codigo, nome), hoteis_tipo_nome(codigo, nome), hoteis_tipo(codigo,cod_tipo,cod_hotel)

Um hotel pode ter vários tipos de acomodações, Single, Double Triple.... etc

O cliente na hora de buscar por um hotel ele tem que marcar por checkbox por quais tipos de acomodações ele quer visualizar...

E somente os hoteis que tiverem todos os tipos de acomodações que ele marcou que aparecerá, ou seja, caso o cliente marcar para visualizar o Single e o Double... E o hotel tiver apenas o Single, já não vai aparecer.

Eu preciso fazer esse select

Eu tentei assim mais eu sei que a lógica está errada:

"SELECT hoteis.nome AS hotelnome FROM hoteis, hoteis_tipo WHERE hoteis_tipo.cod_tipo = 1 AND hoteis_tipo.cod_tipo = 2"

Se eu colocar OR em vez de AND aparecerá todos os hoteis.... (por ex: se o cliente marcar Single e Double, e o hotel tiver apenas Single vai aparecer)

Eu consegui fazer isso usando IF na programação depois de dar um SELECT * FROM hoteis, mas eu não posso manter desta maneira, pois estou usando paginação.

Bem, é isso ae

espero ter explicado bem o meu problema

Obrigado

Link para o comentário
Compartilhar em outros sites

5 respostass a esta questão

Posts Recomendados

  • 0
"SELECT hoteis.nome AS hotelnome FROM hoteis, hoteis_tipo WHERE hoteis_tipo.cod_tipo = 1 AND hoteis_tipo.cod_tipo = 2"

Tente assim:

SELECT hoteis.nome AS hotelnome FROM hoteis, hoteis_tipo WHERE hoteis_tipo.cod_tipo BETWEEN 1 AND 2

att Denis Courcy

Link para o comentário
Compartilhar em outros sites

  • 0
Denis, assim não funcionará também, pois esses codigos 1 e 2 são apenas exemplos que eu dei.... os codigos checados poderiam ser 1 e 3 ....no caso se eu usasse o between o 2 apareceria também...

Então seria

SELECT hoteis.nome AS hotelnome FROM hoteis, hoteis_tipo WHERE hoteis_tipo.cod_tipo IN (1,3,5,etc.);

att

Denis Courcy

Link para o comentário
Compartilhar em outros sites

  • 0

Denis assim não funcionaria da maneira que eu quero também,

Pois comando IN no MYSQL substitui vários OR's .... vamos dizer que o usuário checou os código que você citou...

geraria o SELECT IN (1, 3, 5) se o registro( o hotel no caso ) possuir apenas as categorias ( um hotel pode possuir mais de uma categoria disponível ) 1 e 3 por exemplo.... o comando mostraria este registro ( o sistema deve retornar apenas os hoteis possuem todos os códigos ( categorias ) dentro do IN, se o hotel não disponibilizar todas as categorias selecionadas, não mostrará este registro.

valeu

Link para o comentário
Compartilhar em outros sites

Visitante
Este tópico está impedido de receber novos posts.


  • Estatísticas dos Fóruns

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