Advertisement
joaopaulofcc

[IF] [DB] SQL II - Exercício 04/C

Nov 21st, 2018
236
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
MySQL 0.94 KB | None | 0 0
  1. # Consultar o primeiro nome e os interesses que cada contato não tem.
  2. # DISTINCT é utilizado para retornar apenas valores não repetidos
  3. # Para mais detalhes: https://www.w3schools.com/sql/sql_distinct.asp
  4. #
  5. # A ideia é:
  6. # 1º) Encontrar os interesses de cada contato;
  7. # 2º) Encontrar o produto cartesiano entre as três tabelas
  8. # 3º) O resultado é tudo aquilo do produto cartesiano que não esta na tabela do passo 1.
  9. SELECT DISTINCT meus_contatos.primeiro_nome AS Nome, interesses.interesse AS Interesse
  10. FROM meus_contatos
  11. CROSS JOIN contato_interesse CROSS JOIN interesses
  12. WHERE (meus_contatos.primeiro_nome, interesses.interesse)
  13. NOT IN
  14. (
  15.     SELECT meus_contatos.primeiro_nome, interesses.interesse
  16.     FROM contato_interesse
  17.     INNER JOIN meus_contatos
  18.     ON meus_contatos.id_contato = contato_interesse.id_contato
  19.     INNER JOIN interesses
  20.     ON interesses.id_interesse = contato_interesse.id_interesse
  21. )
  22. ORDER BY meus_contatos.primeiro_nome;
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement