状況は次のとおりです。
私のデータベースには、スレッドのあるテーブルと応答のあるテーブルがあります。どちらにもタイムスタンプフィールドがあります。
現在、フォーラムを開発しており、次の方法でスレッドを注文したいと考えています。
- スレッドに応答がある場合は、次のようになります。ORDER BY tblReply.Timestamp DESC
- それ以外の場合、スレッドには応答がありません:ORDER BY tblThread.Timestamp DESC
これら2つを1つのステートメントに組み合わせる方法がわかりません。
現在の私のクエリ:
SELECT `PK_ThreadID`, `Title`, `tblUsers`.`Username`, `tblThread`.`Date`, count(tblReply.FK_ThreadID) AS number_replies FROM (`tblThread`)
JOIN `tblUsers` ON `tblUsers`.`PK_UserID` = `tblThread`.`FK_UserID`
LEFT JOIN `tblReply` ON `tblReply`.`FK_ThreadID` = `tblThread`.`PK_ThreadID`
WHERE `isExpertQuestion` = 0 AND `isPublic` = 1
GROUP BY `PK_ThreadID`
ORDER BY max(tblReply.Date)` desc
//Here it only orders by reply date, so threads with no replies appear at the bottom
このクエリで必要な順序をどのように達成しますか?