Ich habe die folgende AbfrageMit bevor Gruppe orderby von aus zwei verschiedenen Tabellen
SELECT
quote.id ,
quote.createdAt,
status.status AS 'Status'
FROM
quote
JOIN
quotelog ON quotelog.quote = quote.id
JOIN
status ON status.id = quotelog.status
das Verhältnis zwischen Angebot und quotelog ist einer von vielen, was ich will, ist die neueste quotelog für das Angebot angezeigt werden soll.
Sowohl quote und quotelog haben created_at, ich zeige hier das Erstellungsdatum des Zitats.
das Ergebnis Während jedes Zitat mehrere Status haben, möchte ich nur die neueste eines für jedes Zitat
id createdAt Status
1 07-12-15 6:14 newQuote
2 07-12-15 6:40 newQuote
2 07-12-15 6:40 quoteCancelled
3 07-12-15 7:21 newQuote
3 07-12-15 7:21 quotePaused
4 07-12-15 8:17 newQuote
4 07-12-15 8:17 quoteCompleted
mit dem Hinzufügen von Gruppe I dieses
erhalten von quote.id bekommenid createdAt Status
1 07-12-15 6:14 newQuote
2 07-12-15 6:40 newQuote
3 07-12-15 7:21 newQuote
4 07-12-15 8:17 newQuote
Ich möchte es so aussehen
id createdAt Status
1 07-12-15 6:14 newQuote
2 07-12-15 6:40 quoteCancelled
3 07-12-15 7:21 quotePaused
4 07-12-15 8:17 quoteCompleted
so was ich brauche, ist von qoutelog.createdAt zu bestellen, bevor sie von q Gruppierung uote.id
fand ich Antworten in Stackoverflow, aber sie nur mit einer Tabelle entweder mit HAVING nach Gruppe oder selbst beitreten Unterabfrageergebnis, das enthält, um durch oder mit ROW_NUMBER(), der Mysql nicht unterstützt
beschäftigen
Erstens, wenn Sie noch nicht sind, speichern Sie Datumsangaben mit einem geeigneten Datumsdatentyp. – Strawberry
Ich verwende Datetime, ist es nicht ein richtiger Datentyp? – user1493376
Es ist, also ist alles in Ordnung dann – Strawberry