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

jak získat podobné objekty na základě značek

Tím se vrátí seznam všech filmů, které sdílejí alespoň 1 značku s daným <current_movie_id> seřazené podle klesajícího počtu společných značek

SELECT movie.*, count(DISTINCT similar.tag) as shared_tags FROM movie INNER JOIN 
    ( tagged AS this_movie INNER JOIN tagged AS similar USING (tag) )
    ON similar.movie = movie.id
WHERE this_movie.movie=<current_movie_id>
AND   movie.id != this_movie.movie
GROUP BY movie.id
ORDER BY shared_tags DESC

doufám, že vám to dá práci




  1. Úvahy o pořadí sloupců v indexech a řazení

  2. Lightswitch neumožňuje přidávat nebo upravovat záznamy v MySQL

  3. MySQL a zamkněte tabulku, přečtěte si ji a pak ji ořízněte

  4. Závodní podmínky MySQL