У меня есть три таблицы, библиотечные предметы, копии и кредиты.mySQL Sub Выберите необходимый
libraryitem hasMany копии, а копия hasMany кредиты.
Я пытаюсь получить последние запись кредита только для копирования; Запрос ниже возвращает все кредиты для данной копии.
SELECT
libraryitems.title,
copies.id,
copies.qruuid,
loans.id AS loanid,
loans.status,
loans.byname,
loans.byemail,
loans.createdAt
FROM copies
INNER JOIN libraryitems ON copies.libraryitemid = libraryitems.id AND libraryitems.deletedAt IS NULL
LEFT OUTER JOIN loans ON copies.id = loans.copyid
WHERE copies.libraryitemid = 1
ORDER BY copies.id ASC, loans.createdAt DESC
Я знаю, что здесь должно быть подборе выбора какого-либо описания, но он пытается получить правильный синтаксис. Как мне вернуть только последнюю, то есть MAX (loans.createdAt) строку для каждой отдельной копии? Просто использование группы по экземплярам copy.id возвращает самую раннюю, а не последнюю запись.
пример изображение ниже:
(Как продемонстрировал Мохсен) Подзапрос не является абсолютно необходимым - но он, как правило, быстрее! – Strawberry