2016-04-06 16 views
1

私の質問には入力が必要です。私がしようとしているのは、ユーザーが入力した時間と、データベースに格納されたブロックの時間を比較して、そのタイムスロットが利用可能かどうかを確認することです。2つのテーブルの値を照会して比較する方法は?

私が実行している問題は、ユーザーの値が1つの表にあり、別の表の値のブロックであることです。私の質問は以下の通りです。どんな助けもありがとう。私はすべての私のアイデアを使い果たしました!

EmpID = FOREIGN KEY 

例:

ユーザーが入力する - 2016年4月6日09-00-00私はその後、私はこのクエリ以下だと思ったものを実行しているかどうかを確認 (DB内のタイプ日時の)時間は ブロック間で利用可能とすることができます。2016-04-06 09-00-00 AND 2016-04-06 10-00-00

次に、その時間をスケジュールすることがOKであるとして更新します。

UPDATE TimeRequestedTable 
SET AppointTime = "inputed by user" 
WHERE EmpID IN 
     (SELECT BlockTimesTable.EmpID 
     FROM BlockTimesTable 
     WHERE 
     (SELECT AppointTime 
      FROM TimeRequestedTable) 
     BETWEEN startTime and EndTime); 
+0

に参加する必要があるようだ、私が提供され、例えば、二つのテーブルのためおよび所望の結果 – Aducci

+0

のサンプルデータを提供してください。 –

答えて

1

あなたは、内側が更新

UPDATE TimeRequestedTable 
INNER JOIN BlockTimesTable ON BlockTimesTable.EmpID = TimeRequestedTable.EmpID 
SET AppointTime = "inputed by user" 
WHERE AppointTime BETWEEN startTime and EndTime 
+0

AppointmentTimeがBlockTimesTableにないのに、これは動作しますか?私はこれを考えましたが、私がそれを考えたときそれを反証しました。 - ありがとうございます –

+0

AppointTimeは "設定された"列であり、TimeREquestedテーブルにある必要があります。 – scaisEdge

関連する問題