1

id (PK, A_I)、systemID (varchar(32))、total (varchar(32))、difference (varchar(16))、updated (datetime)、error (int) の 6 つの列を含むテーブルがあります。 )。テーブルは 1 時間ごとに更新され、現在 200 万件を超えるレコードがあります。したがって、今日の値のみを含むテーブルと履歴データを含むテーブルに分割したいと思います。今日のテーブルのデータは、毎日午前 0 時に履歴に移動されます。ここまでは順調ですね。

問題は、ユーザーが日表示、週表示、月表示、および年表示で差分値を表示するオプションを持っていることです。今日のテーブルと履歴テーブルを結合する方法がわからないので、それらは 1 つとして機能します。現在、週ビューのクエリは次のとおりです。

SELECT difference FROM productionlog 
WHERE systemID = '$id'
AND DATE(updated) BETWEEN '$weekStart' AND '$weekEnd'
ORDER BY updated

今日のテーブルを過去のテーブルと結合して上記の結果を得るにはどうすればよいですか?

4

2 に答える 2

1

このクエリを試してください。

SELECT difference FROM productionlog WHERE systemID = '$id' AND DATE(updated) BETWEEN '$weekStart' AND '$weekEnd'
UNION ALL
SELECT difference FROM productionlog_today WHERE systemID = '$id' AND DATE(updated) BETWEEN '$weekStart' AND '$weekEnd' ORDER BY updated

ユニオンも読む

于 2013-10-01T21:47:30.260 に答える