объединить три таблицы и получить данные последней записи из второй таблицы в mysql - PullRequest
0 голосов
/ 24 апреля 2020

У меня три таблицы user, user_data, subscription_data и payment_history.

User Table User Table

user_data Table user_data

Данные подписки

Subsciption data

payment_history enter image description here

Что мне нужно сделать, это когда пользователь загружает какой-либо контент в 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 получает двойное значение, как и ожидалось.

Вывод

Output

Пожалуйста, предложите, как продолжить.

Я хочу пробел> 1024, file_size> 427, subscription_id> 2

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...