Skip to content

Template repository for Filmorate project.

Notifications You must be signed in to change notification settings

Osdleon/java-filmorate-1

 
 

Repository files navigation

Filmorate

UML диаграмма
Номер Таблица Состав таблицы
1 users Пользователи
2 friends Таблица друзей
3 mpa Рейтинг фильмов
4 films Список фильмов
5 genres Жанры
6 film_genre Связь фильм - жанр
7 likes Связь фильм - пользователь
Запросы
  1. Запрос с сортиров по количеству лайков:
SELECT f.*
     , m.*
     , g.*
FROM films f
         LEFT JOIN (SELECT film_id
                         , COUNT(user_id) as count_likes
                    FROM likes
                    GROUP BY film_id) cf
                   ON cf.film_id = f.film_id
         LEFT JOIN mpa m
                   ON f.mpa_id = m.mpa_id
         LEFT JOIN film_genre fg
                   ON f.film_id = fg.film_id
         LEFT JOIN genres g
                   ON g.genre_id = fg.genre_id
ORDER BY count_likes;
  1. Запрос для заполнения фильмов
SELECT f.*
     , m.*
     , g.*
FROM films f
         LEFT JOIN mpa m
                   ON f.mpa_id = m.mpa_id
         LEFT JOIN film_genre fg
                   ON f.film_id = fg.film_id
         LEFT JOIN genres g
                   ON g.genre_id = fg.genre_id
WHERE f.film_id = ?
  1. Запрос на получение общих друзей
SELECT u.*
FROM friends fi
         INNER JOIN friends fo
                    ON fi.friend_id = fo.friend_id
                        AND fi.user_id = ?
                        AND fo.user_id = ?
         INNER JOIN users u
                    ON u.user_id = fo.friend_id
  1. Запрос на получение друзей
SELECT u.*
FROM users u
         INNER JOIN (SELECT * 
                     FROM friends where user_id = ?) f
                    ON u.user_id = f.friend_id

About

Template repository for Filmorate project.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Java 100.0%