Filmorate is a platform that integrates film exploration with social interactions. It connects users through a shared interest in movies, enabling them to engage with both the film content and their social network.
Описание Таблиц
- id (integer): Уникальный идентификатор пользователя. Это первичный ключ таблицы.
- email (varchar): Электронная почта пользователя.
- login (varchar): Логин пользователя.
- name (varchar): Имя пользователя.
- birthday (date): Дата рождения пользователя.
- user_id (integer): Идентификатор пользователя, который отправил запрос на дружбу. Это внешний ключ, ссылающийся на user.id.
- friend_id (integer): Идентификатор друга, с которым установлена связь. Это внешний ключ, ссылающийся на user.id.
- status (varchar): Статус запроса на дружбу (например, "ожидает", "принят", "отклонен").
- id (integer): Уникальный идентификатор фильма. Это первичный ключ таблицы.
- name (varchar): Название фильма.
- description (text): Описание фильма.
- releaseDate (date): Дата выпуска фильма.
- duration (integer): Продолжительность фильма.
- rating (varchar): Возрастной рейтинг фильма (например, "PG", "R", "G").
- id (integer): Уникальный идентификатор жанра. Это первичный ключ таблицы.
- name (varchar): Название жанра.
- film_id (integer): Идентификатор фильма. Это внешний ключ, ссылающийся на film.id.
- genre_id (integer): Идентификатор жанра. Это внешний ключ, ссылающийся на genre.id.
- film_id (integer): Идентификатор фильма, который был лайкнут. Это внешний ключ, ссылающийся на film.id.
- user_id (integer): Идентификатор пользователя, который поставил лайк. Это внешний ключ, ссылающийся на user.id.
SQL queries
SELECT * FROM film;SELECT * FROM user;SELECT f.id, f.name, COUNT(fl.user_id) AS like_count
FROM film f
JOIN film_likes fl ON f.id = fl.film_id
GROUP BY f.id, f.name
ORDER BY like_count DESC
LIMIT 10;SELECT u.id, u.email, u.login, u.name, u.birthday
FROM user u
JOIN friends f1 ON u.id = f1.friend_id
JOIN friends f2 ON u.id = f2.friend_id
WHERE f1.user_id = 'user_id1' AND f2.user_id = 'user_id2';SELECT u.id, u.email, u.login, u.name, u.birthday
FROM user u
JOIN film_likes fl ON u.id = fl.user_id
WHERE fl.film_id = 'film_id';SELECT f.id, f.name, f.description, f.releaseDate, f.duration, f.rating
FROM film f
JOIN film_likes fl ON f.id = fl.film_id
WHERE fl.user_id = 'user_id';