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

(Resolvido) Inner Join Dificuldade


claytonprog

Pergunta

Pessoal!

Estou com outra dúvida aqui:

É o seguinte tenho uma tabela chamada horario e nela tenho um campo chamado hora, neste campo listo os seguintes horarios:

Campo Hora:

de 07:45 até 19:00 intervalo de 15min entre eles.

Tenho outra tabela que se chama calendario e nela tenho os seguintes campos:

id-sala - dia - mes - ano - hora_ini

Faço um filtro nessa tabela calendario da seguinte forma:

"select hora_ini from calendario where dia ='04' and mes='10' and ano='2010' and id_sala='2'"

ele me traz o seguinte:

07:45

08:00

08:15

08:30

10:00

10:15

10:30

o que quero fazer?

uma consulta para comparar com os horarios da tabela horario e alimentar uma combobox somente com os horarios que sejam diferentes da tabela calendario, ou seja os horarios 07:45,08:00,08:15,08:30,10:00,10:15,10:30 não podem aparecer nesta combo. Eu andei pesquisando e acho que poderia se feito com inner join só não sei como montar essa consulta.

Quem puder montar e me ajudar agradeço imensdamente.

Aguardo!

Link para o comentário
Compartilhar em outros sites

3 respostass a esta questão

Posts Recomendados

  • 0

Bom, essa pergunta deveria estar no fórum de banco de dados, lá poderiam te ajudar melhor. Mas como a pergunta não é tão difícil...

Não é necessário usar JOIN, você só precisa pegar todos os valores que não estejam na tabela horario utilizando o operador NOT IN e uma subquery... ex:

SELECT hora_ini FROM calendario WHERE dia ='01' AND mes='10' AND ano='2010' AND id_sala='2' AND hora_ini NOT IN (SELECT hora FROM horario) ORDER BY hora_ini

Lembrando que na subquery após o NOT IN você também pode utilizar a cláusula WHERE para filtrar...

Qualquer dúvida, volte a postar.

Abraços

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

  • 0

Amigo Stoma consegui:

Sua lógica estava correta o único problema era a listagem dos registros você inverteu as tabelas:

Ficou assim:

SELECT hora FROM horario WHERE hora NOT IN (SELECT hora_ini FROM calendario WHERE dia ='04' AND mes='10' AND ano='2010' AND id_sala='2') ORDER BY hora

Podem encerrar o tópico! Obrigado.

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,2k
    • Posts
      652k
×
×
  • Criar Novo...