PostgreSQL
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> PostgreSQL

tìm sách tương tự dựa trên sách đã mua dựa trên từ khóa meta sách

Bạn có thể thực hiện việc này với các phép nối:

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

Truy vấn bắt đầu từ sách mà khách hàng 1 đã mua, sau đó đưa các từ khóa tương ứng và cuối cùng lấy tất cả các sách khác có bất kỳ từ khóa nào chung.

Ghi chú:

  • Nếu có một số từ khóa phù hợp trên các cuốn sách, thì bạn sẽ nhận được bản sao trong tập kết quả. Trong trường hợp đó, hãy sử dụng select distinct

  • Bạn không cần bảng book để có được kết quả bạn muốn - nếu cần vì lý do nào đó, bạn có thể mang lại kết quả đó với một lần tham gia nữa




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Sử dụng hàm Levenshtein trên mỗi phần tử trong tsvector?

  2. Truy vấn Postgres chậm 9.3

  3. Postgres đặt tự động gửi tắt trên toàn cầu

  4. ĐẶT HÀNG ĐƯỢC lập chỉ mục theo LIMIT 1

  5. Ràng buộc khóa ngoại với một số giá trị cột nằm trong các bảng khác