Jag skriva något i stil med:
ORDER BY Ans.Date DESC AND Frm.Date DESC, Ans.Time DESC AND Frm.Time DESC");
7 svar · 594 visningar · startad av streetrobban
Hej!
Jag har två tabeller (Forum och ForumAnswers). Jag vill sortera inlägg från Forum beroende på vilket datum i Forum ELLER ForumAnswers som är högst (senast). Jag vill liksom "slå ihop" Date-fälten från både Forum och ForumAnswers och skriva ut det senaste inlägget högst upp.
Min SQL-kod ser ut som följer:
$get = mysql_query("SELECT Frm.ID, Frm.Time, Frm.Date, Frm.Topic, Frm.Views, Ans.ID, Usr.Firstname, Usr.Lastname
FROM Users AS Usr
JOIN Forum AS Frm ON Frm.WriterID = Usr.ID
LEFT JOIN ForumAnswers AS Ans ON Ans.FatherID = Frm.ID
ORDER BY Ans.Date DESC, Ans.Time DESC, Frm.Date DESC, Frm.Time DESC");
Jag skriva något i stil med:
ORDER BY Ans.Date DESC AND Frm.Date DESC, Ans.Time DESC AND Frm.Time DESC");
Först och främst: Finns det någon anledning till att du har datum och tid i skilda fält?
Bara för att det är lättare att hämta, du föreslår att jag lägger tid och datum i samma fält?
Nu har jag lagt till ett fält som heter DateAndTime som är DATETIME.
Jag hade gjort det. Det mesta blir lättare då - inte bara lösningen på din nuvarande fråga:
ORDER BY
CASE WHEN Ans.DateAndTime IS NOT NULL
THEN Ans.DateAndTime
ELSE Frm.DateAndTime
END DESC
Mvh
Varsågod! :)