Sẽ không có ích gì nếu bạn chỉ tìm kiếm các bản nhạc có tất cả các từ. Tôi giả định rằng (trackid
, wordid
) kết hợp là duy nhất trong trackwords
.
SELECT t.id
FROM track as t, trackwords as tw, wordlist as wl
WHERE t.id=tw.trackid
AND wl.id=tw.wordid
AND wl.trackusecount>0 /* not sure what that is - you have it in your query */
AND wl.word in ('folsom','prison','blues')
GROUP by t.id
HAVING count(*) = 3
Truy vấn này sẽ được hưởng lợi từ các chỉ mục trên danh sách từ (word), từ khóa (trackid, wordid) và theo dõi (id).