PostgreSQL
 sql >> Baza danych >  >> RDS >> PostgreSQL

znajdź podobne książki na podstawie zakupionych książek na podstawie meta słów kluczowych książki

Możesz to zrobić za pomocą złączeń:

select bmk2.book
from customer_books cb
inner join book_meta_keyword bmk1 
    on  bmk1.book = cb.book
inner join book_meta_keyword bmk2 
    on  bmk2.meta_keyword = bmk1.meta_keyword
    and bmk2.book <> bmk1.book
where cb.customer = 1

Zapytanie zaczyna się od książek, które kupił klient 1, następnie przywołuje odpowiednie słowa kluczowe, a na końcu otrzymuje wszystkie inne książki, które mają jakieś wspólne słowo kluczowe.

Uwagi:

  • Jeśli w książkach jest kilka pasujących słów kluczowych, w zestawie wyników otrzymasz duplikat. W takim przypadku użyj select distinct

  • Nie potrzebujesz tabeli book aby uzyskać pożądany rezultat - jeśli z jakiegoś powodu jest to konieczne, możesz to zrobić z jeszcze jednym dołączeniem




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Używanie warunku If w klauzuli where

  2. Pobierz nazwę miesiąca z numeru w PostgreSQL

  3. Nie można utworzyć nowej bazy danych za pomocą pgadmin4

  4. GORM utwórz rekord, który może już istnieć

  5. PG::SyntaxError dla aplikacji kolejowych