私はusersテーブルとtasksテーブルを持っています。ユーザーはタスクを割り当てることができます。各タスクには特定の時間がかかります。私はuser_idの外部キー、date_start(unixタイムスタンプ)、date_stop(unixタイムスタンプ)を持っているタスクテーブルで。特定の時間範囲内でビジーでないユーザーを選択する
私は、今日の午前2時30分から午後4時までの間に新しいタスクを、その時間内に無料のランダムなユーザーに割り当てたいとします(新しいタスクに重複するタスクは割り当てられません) )。
このようなユーザーを取得するための適切なSQLクエリは何でしょうか?
(http://stackoverflow.com/questions/325933/determine-whether-two-date-ranges-overlap) –
@PaulSpiegel、それ[かどうかは、2つの日付の範囲が重複する決定]の可能重複オーバーラップではありません。この質問はより簡単です。なぜなら、 'date_start'と' date_stop'は線形的に並べ替えることができるということです(少なくとも、あるはずです)。 –
リンクされた質問の答えは、2つの範囲が重複しているかどうかを確認する方法を示しています。これで 'NOT EXISTS'副問い合わせが必要になります。 –