Template repository for Filmorate project.
- Получить список всех фильмов:
SELECT * FROM films;- Получение фильма по ID:
SELECT * FROM films WHERE id = ?;- Добавление нового фильма:
INSERT INTO films (name, description, release_date, duration, mpa_rating_id)
VALUES (?, ?, ?, ?, ?);- Обновление данных фильма:
UPDATE films SET name = ?, description = ?, release_date = ?, duration = ?, mpa_rating_id = ?
WHERE id = ?;- Получение всех жанров фильма по его ID:
SELECT gr.id, gr.name
FROM genres gr
JOIN film_genres fg ON gr.id = fg.genre_id
WHERE fg.film_id = ?;- Получение самых популярных фильмов:
SELECT f.id, f.name, f.description, f.release_date, f.duration, f.mpa_rating_id
FROM films f
LEFT JOIN (
SELECT film_id, COUNT(*) AS count
FROM film_likes
GROUP BY film_id
) t ON f.id = t.film_id
ORDER BY t.count DESC
LIMIT ?;- Добавление лайка пользователем к фильму:
INSERT INTO film_likes (film_id, user_id)
VALUES (?, ?);- Удаление лайка пользователем с фильма:
DELETE FROM film_likes
WHERE film_id = ? AND user_id = ?;- Получение количества лайков у фильма:
SELECT COUNT(*)
FROM film_likes
WHERE film_id = ?;- Получение списка всех пользователей:
SELECT * FROM users;- Получение пользователя по ID:
SELECT * FROM users WHERE id = ?;- Добавление нового пользователя:
INSERT INTO users (email, login, username, birthday) VALUES (?, ?, ?, ?);- Обновление данных пользователя:
UPDATE users SET email = ?, login = ?, username = ?, birthday = ? WHERE id = ?;- Получение всех друзей пользователя:
SELECT u.id, u.email, u.login, u.username, u.birthday
FROM users u
JOIN friends f ON u.id = f.friend_id
WHERE f.user_id = ?;- Получение общих друзей двух пользователей:
SELECT u.id, u.email, u.login, u.username, u.birthday
FROM users u
JOIN friends f1 ON u.id = f1.friend_id AND f1.user_id = ?
JOIN friends f2 ON u.id = f2.friend_id AND f2.user_id = ?;- Получение всех жанров:
SELECT * FROM genres;- Получение жанра по ID:
SELECT * FROM genres WHERE id = ?;- Получение всех рейтингов:
SELECT * FROM ratings;- Получение рейтинга по ID:
SELECT * FROM ratings WHERE id = ?;