sql >> Databáze >  >> RDS >> Mysql

MySQL - Najděte řádky odpovídající všem řádkům ze spojené tabulky

Nemá smysl levá spojení, pokud hledáte pouze skladby, které obsahují všechna slova. Předpokládám, že (trackid ,wordid ) je v trackwords jedinečná .

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

Tomuto dotazu by prospěly indexy na wordlist(word), trackwords(trackid,wordid) a track(id).



  1. Python:MySQL:Zpracování časových limitů

  2. Jak seskupit podle roku v T-SQL

  3. Nejlepší způsob, jak se vypořádat s překlepy ve fulltextovém vyhledávání MySQL

  4. Seřadit data (seřadit podle) před seskupením podle v mysql