PDO の使用。
SELECT *
FROM time
WHERE
UserId = :uid AND
(
week = :CurrentWeek ||
week = :PreviousWeek1 ||
week = :PreviousWeek2 ||
week = :PreviousWeek3 ||
week = :PreviousWeek4 ||
week = :PreviousWeek5
)
GROUP BY week
ORDER BY week DESC
そこで、過去 5 週間と現在の時間をこのような表に出力しようとしています。
v1 v2 v3 v4 v5
Person 1 40 40 40 40 40
Person 2 39 40 39 40 40
問題は、たとえばの場合です。v3 は存在しません。v4 を v3 の場所にプッシュします。すべての週の値を取得しようとするものを探しています。存在しない場合は、その列のデフォルト値を返します。
この問題を最善の方法で解決したい。(もちろん、毎週ループして値を1つずつ取得することもできますが、より効率的な方法でなければなりません)