PostgreSQL
 sql >> база данни >  >> RDS >> PostgreSQL

намиране на подобни книги въз основа на закупени книги въз основа на мета ключови думи за книги

Можете да направите това с обединения:

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

Заявката започва от книгите, закупени от клиент 1, след това въвежда съответните ключови думи и накрая получава всички други книги, които имат обща ключова дума.

Бележки:

  • Ако има няколко съвпадащи ключови думи в книгите, тогава ще получите дубликат в набора с резултати. В такъв случай използвайте select distinct

  • Нямате нужда от таблица book за да получите резултата, който искате - ако е необходимо по някаква причина, можете да го донесете с още едно присъединяване




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. ПРИСЪЕДИНЕТЕ (ИЗБЕРЕТЕ ... ) ue ON 1=1?

  2. Бележки относно индексите на PostgreSQL B-Tree

  3. Как да upsert в Postgres при конфликт на една от 2 колони?

  4. Използване на SQL като xlookup

  5. Вземете първата дата от месеца в postgres