Mysql
 sql >> Baza danych >  >> RDS >> Mysql

MySQL - Znajdź wiersze pasujące do wszystkich wierszy z połączonej tabeli

Lewe sprzężenia nie mają sensu, jeśli szukasz tylko ścieżek zawierających wszystkie słowa. Zakładam, że (trackid ,wordid ) kombinacja jest unikalna w 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

To zapytanie skorzystałoby z indeksów na liście słów (słowo), słowach śledzących(id trackid,wordid) i 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. Tworzenie tablicy za pomocą rekurencyjnego php z mysql

  2. MYSQL, Max, Grupuj według i Max

  3. Zrzuć wszystkie tabele w formacie CSV, używając „mysqldump”

  4. MySQL Nieprawidłowa wartość daty i godziny:'0000-00-00 00:00:00'

  5. Jak napisać zapytanie o szablon hibernacji z zapytania sql?