0
我知道有很多「我如何找到最近記錄」的問題,但沒有一個解決了我的特殊問題:在MySQL中,我試圖查找映射到同一個表中兩個不同類別的條目的最新記錄。基本上有一個帶有一堆信息的ENTRIES表,一個CATEGORIES表(id,name)和一個ENTRY_CATEGORIES表(entry_id,category_id)。我需要找到映射到兩個不同類別的最新記錄。我已經設法做到了這一點,但只能通過本質上加入派生表來實現,並且感覺好像有一個更簡潔的方法來做到這一點。我怎樣才能更好地表達以下爛攤子:查找類別交叉點的最新條目
SELECT doc.entry_id
FROM exp_category_posts doc
INNER JOIN exp_category_posts fund ON doc.entry_id = fund.entry_id
INNER JOIN exp_weblog_titles t ON doc.entry_id = t.entry_id
WHERE doc.cat_id = 408
AND fund.cat_id = 548
AND t.entry_date = (SELECT MAX(t.entry_date)
FROM exp_category_posts doc
INNER JOIN exp_category_posts fund ON doc.entry_id = fund.entry_id
INNER JOIN exp_weblog_titles t ON doc.entry_id = t.entry_id
WHERE doc.cat_id = 408
AND fund.cat_id = 548)
這是一個硬編碼的例子,其中408和548通常會領域以及。如果你好奇,這是一個Expression Engine數據庫。
我很喜歡,但是這個版本的MySQL不允許在子查詢中使用LIMIT語句。應該提到那個,對不起。 – Tom 2009-10-21 22:26:50