Я знаю, что есть несколько вопросов «Как найти самые последние записи» там, но ни одна из них не решила мою конкретную проблему: в 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