我有三个表,libraryitems,副本和贷款。MySQL的子选择需要
A libraryitem hasMany copies,副本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)行?只需使用group by copy.id返回最早的条目,而不是最新的条目。
图片下面的例子:
(如穆赫辛已经证明)子查询是不严格necesssary - 但它往往会更快! – Strawberry 2014-11-02 12:43:14