On this question Я получил ответ, который сработал хорошо. Теперь мне интересно, есть ли возможная лучшая структура.Должен ли я создать новое поле в таблице или просто выбрать MAX второй таблицы
У меня есть две таблицы.
Projects : id, title
Status : project_id, status_id, created(DATETIME)
На данный момент, чтобы получить статус моего проекта, я получаю идентификатор проекта и вытащить последнюю строку из таблицы состояния на основе идентификатора проекта. Чтобы получить эту последнюю строку, это довольно хлопот.
Должен ли я изменить схему на это?
Projects : id, title, current_status_id(FK)
Status : id(PK), project_id, status_id, created(DATETIME)
Тогда я могу только присоединиться к таблицам с FK и получить строку, что я хочу, не смотря на последний?
EDIT:
Так что я хочу что-то вроде этого
SELECT * FROM projects
LEFT JOIN status on projects.id = status.project_id
WHERE projects.id = 1
Но я хочу только последнюю запись в таблице состояния.
EDIT 2:
Так что я хочу что-то вроде этого
SELECT * FROM projects
LEFT JOIN status on projects.id = status.project_id
Но каждый проект вернулся, только получить последнюю запись статуса для этого PROJECT_ID от статуса.
Это будет использовать отдельный запрос. Я хотел бы, чтобы один запрос был соединен для скорости –
Не вычисляет? Оба являются одиночными запросами для разных целей (так что вам нужно только 1 по вашему выбору), и «один запрос соединен для скорости» => Я не понимаю, что вы имеете в виду. – Wrikken
Я хотел бы выбрать проект и получить статус в этом запросе. Разве это не быстрее, чем выполнение двух запросов? –