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

SQL заявка, базирана на друга таблица

Опитайте тази заявка:

SELECT m2.movieId
FROM mMoviesGenres m1
INNER JOIN mMoviesGenres m2
    ON m1.genreID = m2.genreID
WHERE m1.movieId = 1 AND
      m2.movieId <> 1
GROUP BY m2.movieId
HAVING COUNT(*) = (SELECT COUNT(*) FROM mMoviesGenres WHERE movieId = 1)

Актуализация:

Ако искате да намерите филми, които са сходни по отношение на поне два жанра, тогава използвайте този HAVING клауза:

HAVING COUNT(*) >= 2


  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 - Използване на COUNT(*) в клаузата WHERE

  2. MySQL MIN() и MAX() с LIMIT

  3. Как да съхранявате URL адреси в MySQL

  4. Задаване на полето за автоматично вмъкване на времеви печат при АКТУАЛИЗИРАНЕ?

  5. MySQL не генерира правилни резултати, използвайки ODBC параметър за дата