У меня три таблицы user, user_data, subscription_data и payment_history.
User Table
user_data Table
Данные подписки
payment_history
Что мне нужно сделать, это когда пользователь загружает какой-либо контент в user_data, то сначала я должен убедиться, что пользователь не должен загружать данные больше, чем его план.
Так как пользователь может изменить свой план, поэтому для получения текущего плана я пытаюсь получить последнюю строку строки payment_history текущего пользователя.
Logi c i Попытка реализовать состоит в том, чтобы получить последний идентификатор из таблицы payment_history вошедшего в систему пользователя и соединить его с таблицей subscription_data по subscription_id, чтобы я мог получить разрешенное пространство для пользователя. Если я получу это разрешенное пространство, то легко сможет сравнить текущую загрузку пользователя размер и общий размер файла он загрузил на Таблица user_data.
I TRIED
SELECT subscription_plan.allowed_space_in_kb as space,
SUM(user_data.file_size) as file_size,
subscription_plan.id as subscription_id
from payment_history
LEFT JOIN user_data on (payment_history.user_id = user_data.user_id)
LEFT JOIN subscription_plan on (payment_history.subscription_id = subscription_plan.id)
where user_data.user_id = 1
Но Возвращает данные первую строку таблицы payment_history, также file_size получает двойное значение, как и ожидалось.
Вывод
Пожалуйста, предложите, как продолжить.
Я хочу пробел> 1024, file_size> 427, subscription_id> 2