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

(Resolvido) Select MySQL


Guest Renato Golveia Felisbino

Pergunta

Guest Renato Golveia Felisbino

O problema é o seguinte: eu tenho uma tabela chamada eventos e outra chamada pessoas, e mais uma para ligar essas duas (para cadastrar as pessoas nos eventos).

Em exemplo de como seria essa terceira tabela (que liga pessoas à eventos) seria assim:

id_evento | id_pessoa

-------------------------------------

1 | 1

1 | 2

1 | 3

2 | 2

3 | 3

Como eu faço para obter os "id´s" dos eventos do qual a pessoa 1 não participou? Para obter os eventos que ela participou é fácil, mas os que ela não participou é que fica difícil, porque não dá pra colocar ...WHERE id_pessoa != $id_pessoa. Assim ele selecionaria a segunda e a terceira linha também e no entanto a pessoa 1 participou do evento 1. Outra coisa é que a pessoa pode estar cadastrada em vários eventos.

Alguém sabe como fazer isso com MySQL?

Pensei em fazer uma subtração entre o número total de eventos e os que a pessoa participou, mas a única operação entre selects do MySQL é a união.

Link para o comentário
Compartilhar em outros sites

3 respostass a esta questão

Posts Recomendados

  • 0
O problema é o seguinte: eu tenho uma tabela chamada eventos e outra chamada pessoas, e mais uma para ligar essas duas (para cadastrar as pessoas nos eventos).

...

Como eu faço para obter os "id´s" dos eventos do qual a pessoa 1 não participou? Para obter os eventos que ela participou é fácil, mas os que ela não participou é que fica difícil, porque não dá pra colocar ...WHERE id_pessoa != $id_pessoa. Assim ele selecionaria a segunda e a terceira linha também e no entanto a pessoa 1 participou do evento 1. Outra coisa é que a pessoa pode estar cadastrada em vários eventos.

Alguém sabe como fazer isso com MySQL?

...

Oi Renato!

O que você deseja é facil de resolver. use uma subquery desta forma:

(para facilitar vou chamar as tabelas de pessoa, eventos e rl_eventos_pessoa, respectivamente na ordem em que apareceram em sua pergnta)

Select distinct e.id_eventos from Eventos e
WHERE e.id_eventos not in (select distinct rl.id_eventos from rl_eventos_pessoa rl where rl.id_pessoa = 1)

Link para o comentário
Compartilhar em outros sites

  • 0
Guest Renato Golveia Felisbino

Obrigado Denis. Na verdade ocorreu um imprevisto aqui comigo, é que estou lendo um livro de mysql que é meio antigo e nele dizia que o mysql não aceita subselect. Com a sua ajuda, descobri que essa informação esta atrasada.

Link para o comentário
Compartilhar em outros sites

  • 0
Obrigado Denis. Na verdade ocorreu um imprevisto aqui comigo, é que estou lendo um livro de mysql que é meio antigo e nele dizia que o mysql não aceita subselect. Com a sua ajuda, descobri que essa informação esta atrasada.

Leia sempre o manual. É gratuito e tem \as informações certas para sua versão do MySQL.

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...