Mysql
 sql >> база данни >  >> RDS >> Mysql

MySQL - Намерете редове, съответстващи на всички редове от обединена таблица

Няма смисъл от лявото свързване, ако търсите само песни, които съдържат всички думи. Предполагам, че (trackid ,wordid ) комбинацията е уникална в 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

Тази заявка би се възползвала от индекси на wordlist(word), trackwords(trackid,wordid) и track(id).



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Как да синхронизирате MySQL бази данни между две отдалечени бази данни (без техника за репликация на MySQL база данни)

  2. PHP превръща запетаята в <br />

  3. Mysql:Изберете всички данни между две дати

  4. съгласуване на часовите зони с SQL

  5. Контрол на версията на базата данни за MySQL