Mysql
 sql >> Base de Dados >  >> RDS >> Mysql

MySQL - Encontre linhas que correspondam a todas as linhas da tabela unida


Não há sentido em junções à esquerda se você estiver apenas procurando por faixas que tenham todas as palavras. Estou assumindo que (trackid ,wordid ) é única em 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

Essa consulta se beneficiaria de índices em wordlist(word), trackwords(trackid,wordid) e track(id).