Ich versuche, Datum aus zwei Tabellen mithilfe einer MySQL-Abfrage abzurufen. Ich möchte sie zusammenkommen waren categories.cat_id=topics.topic_cat
. Mehrere Einträge können die gleiche topic_cat
haben, also möchte ich nur die neueste, die gleich ist.MYSQL JOIN zwei Tabellen begrenzen Ergebnisse aus zweiter Tabelle nach Datum
Die folgende Abfrage zeigt die korrekten Informationen aus den Themen an, mit nur einem Ergebnis pro topic_cat und dem Ergebnis mit dem neuesten Datum.
SELECT topic_subject, topic_cat, topic_date
FROM topics
GROUP BY topic_cat DESC
Mehrere Zeilen können den gleichen Wert für topic_cat haben, aber ich will nur nur die jüngste, MAX (topic_date) abgerufen werden und kommen und dann zu einer Join-Abfrage, die die folgenden Informationen aus den Kategorien Tabelle zeigt.
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;
Diese Abfrage zeigt die korrekten Informationen an, mit Ausnahme einer Sache. Es zeigt die topic_cat mit dem ältesten Eintrag, oder MIN(topic_date)
. Ich habe folgendes versucht, um das topic_cat durch den neuesten Eintrag oder zu bekommen, aber ohne Erfolg.
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
Jede Hilfe oder Vorschläge würden sehr geschätzt werden.
Ok, also hier sind die Beispieldaten und die damit verbundenen gewünschten Ergebnisse.
Tabelle 1 = Kategorien
_______________________________________________________
| cat_id | cat_name | cat_description |
-------------------------------------------------------
| 1 | james | Some information about james|
-------------------------------------------------------
| 2 | myo | Some information about myo |
-------------------------------------------------------
| 3 | brandon | Some information about brandon |
-------------------------------------------------------
Tabelle 2 = Themen
__________________________________________________
| 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 |
---------------------------------------------------------
ich die Abfrage möchte folgende Daten zurückzukehren, basierend auf den oben stehenden Tabellen:
_________________________________________________________________________________________________
| 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 hoffe das klärt die Dinge.
Bitte geben Datenabtastwert und zugehörige gewünschte Ergebnis. –
Versuchen Sie die Klausel 'LIMIT' zu verwenden. –
Kann ich bis zum letzten Datum einschränken? – Jimbob