Я пытаюсь получить дату из двух таблиц с помощью запроса MYSQL. Я хочу присоединиться к ним вместе: categories.cat_id=topics.topic_cat
. Несколько записей могут иметь одинаковое значение topic_cat
, поэтому я хочу только SELECT выбрать последнее, которое равно MAX(topic_date)
.MYSQL JOIN две таблицы ограничивают результаты второй таблицы по дате
В следующем запросе отображается правильная информация из тем, в которой есть только один результат для topic_cat и результат, имеющий самую последнюю дату.
SELECT topic_subject, topic_cat, topic_date
FROM topics
GROUP BY topic_cat DESC
Несколько строк могут иметь одинаковое значение для topic_cat, но я только хочу, чтобы получить и присоединиться только самые последние, MAX (topic_date), а затем присоединиться к запросу, который показывает следующую информацию из таблицы категорий.
SELECT categories.cat_id, categories.cat_name, categories.cat_description, topics.topic_subject, topics.topic_cat, topics.topic_date, topics.topic_by
FROM categories
LEFT JOIN topics
ON categories.cat_id=topics.topic_cat
GROUP BY cat_id;
Этот запрос отображает правильную информацию, кроме одного. Он показывает topic_cat с самой старой записью, или MIN(topic_date)
. Я попробовал следующее, чтобы получить topic_cat по самой новой записи или MAX(topic_date)
, но безуспешно.
SELECT categories.cat_id, categories.cat_name, categories.cat_description
FROM categories
LEFT JOIN (SELECT topic_subject, topic_cat, topic_date, topic_by
FROM topics
GROUP BY topic_cat DESC) AS topics
ON categories.cat_id=topics.topic_cat
Любая помощь или предложения были бы весьма признательны.
Итак, вот пример данных и соответствующий желаемый результат.
Таблица 1 = категории
_______________________________________________________
| cat_id | cat_name | cat_description |
-------------------------------------------------------
| 1 | james | Some information about james|
-------------------------------------------------------
| 2 | myo | Some information about myo |
-------------------------------------------------------
| 3 | brandon | Some information about brandon |
-------------------------------------------------------
Таблица 2 = темы
__________________________________________________
| topic_subject | topic_cat | topic_date | topic_by |
----------------------------------------------------------
| marcos | 2 | 2013-9-28 | User 1 |
---------------------------------------------------------
| ferdinand | 2 | 2013-9-29 | User 2 |
---------------------------------------------------------
| maria luisa | 2 | 2013-9-30 | User 1 |
---------------------------------------------------------
| Isabella | 1 | 2013-8-24 | User 3 |
--------------------------------------------------------
| Carlos | 3 | 2012-6-21 | User 2 |
--------------------------------------------------------
| Enrique | 3 | 2011-4-2 | User 3 |
---------------------------------------------------------
Я хотел бы запрос, чтобы возвращать следующие данные, основанные на приведенных выше таблицах:
_________________________________________________________________________________________________
| cat_id | cat_name | cat_description | topic_subject | topic_cat | topic_date | topic_by |
----------------------------------------------------------------------------------------------------------------
| 1 | james | Some information about james | Isabella | 1 | 2013-8-24 | User 3 |
----------------------------------------------------------------------------------------------------------------
| 2 | myo | Some information about myo | maria luisa | 2 | 2013-9-30 | User 1 |
----------------------------------------------------------------------------------------------------------------
| 3 | brandon | Some information about brandon | Carlos | 3 | 2012-6-21 | User 2 |
----------------------------------------------------------------------------------------------------------------
I надеюсь, что это прояснит ситуацию.
Просьба представить выборочные данные и связанные с ними желаемого результата. –
Попробуйте использовать предложение 'LIMIT'. –
Могу ли я ограничить самую последнюю дату? – Jimbob