Столы
file_logs
файлы
published_ratings
- author_id
- file_id
- комментарий
- и т.д ...
Сценарий
Я создаю журнал загрузок и мне нужно отобразить, какие файлы оценил пользователь, а также файлы без рейтинга, это нужно сделать с помощью 1 запроса.
Я уже взял трещину в этом,
SELECT
files.*,
IF(file_logs.user_id = published_file_ratings.author_id, TRUE, FALSE) AS rated
FROM file_logs
JOIN files
ON file_logs.file_id = files.id
LEFT JOIN published_file_ratings
ON file_logs.file_id = published_file_ratings.file_id
WHERE file_logs.user_id = 8
GROUP BY id
Проблема с этим запросом состоит в том, что, если сначала появится неправильный пользователь, результаты будут неправильными.
Результатом должен быть массив всех файлов, загруженных пользователем, с колонкой «с рейтингом», показывающей, оценили ли они файл или нет.
Любая помощь действительно приветствуется.