我有三個表,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