私は誰かが取った物理的な練習に関する情報を入手する必要があるプロジェクトに取り組んでいます。次のクエリで情報を取得します。SQLインナーで計算のselectステートメントに参加する
SELECT haas2.trainings.id,
haas2.trainings.timestamp,
haas2.training_types.NAME,
haas2.training_types.description,
haas2.training_types.intensity,
haas2.training_types.length
FROM haas2.trainings
INNER JOIN haas2.training_types
ON haas2.trainings.typeid = haas2.training_types.id
WHERE guid = (SELECT guid
FROM haas2.users
WHERE login = 'mphdijck')
これは、すべてのトレーニングを保持しているユーザーがそれらを取って、その具体的なトレーニングの種類についての情報を保持するテーブルから余分な情報を取得し、テーブルから情報を取ります。
それは次のように返します。
は、今ここでの問題は来る、私はトレーニングがとても最初のセンサ値と前回のセンサ値との間の時間差を計算することにより、かかった実際の時間を取得したいですトレーニングがどれぐらいかかったか知っています。
私はそのために次の文があります。
SELECT
Max(Unix_timestamp(timestamp)) - Min(Unix_timestamp(timestamp)) AS output,
haas2.trainingdata.training_id
FROM haas2.trainingdata
WHERE training_id = 1
これは次のように返します:2番目のクエリがあるため、すべての訓練のための時間を返すならば私の問題が解決されるだろう
それから最初のクエリでINNER JOINに参加できます。しかし、今のようにWHERE句で宣言されたtraining_idからトレーニングを返すことしかできません。
これは意味があると思います。私はできる限り私の問題を明確に説明するために最善を尽くしました。何か明確化が必要な場合は質問してください。
更新:trainingdataテーブルの例
この2つの簡単な手順を実行することをお勧めします。1.まだ実行していない場合は、適切なCREATE文とINSERT文(および/またはsqlfiddle)を指定して、問題をより簡単に再現できるようにします。 2.まだ実行していない場合は、手順1で提供された情報に対応する望ましい結果セットを提供してください。 – Strawberry
@Raspberryano正確に、これは私が必要としていたものです。ありがとうございました。 –
ありがとうミラン・バン・ディジック – Raspberryano