Anda dapat melakukannya dengan bergabung:
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
Kueri dimulai dari buku yang dibeli pelanggan 1, lalu bawa kata kunci yang sesuai, dan akhirnya dapatkan semua buku lain yang memiliki kata kunci yang sama.
Catatan:
-
Jika ada beberapa kata kunci yang cocok di seluruh buku, maka Anda akan mendapatkan duplikat di hasil. Dalam hal ini gunakan
select distinct
-
Anda tidak perlu tabel
book
untuk mendapatkan hasil yang Anda inginkan - jika diperlukan karena alasan tertentu, Anda dapat membawanya dengan satu lagi bergabung