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