私は4つのテーブルを持っています:
日々
CREATE TABLE days (
day text priamry key
);
最近はに実行monday
されsaturday
ます。
時間
CREATE TABLE times (
time time Primary Key,
peak text
);
時間枠で午前8時から午後9時までの時間(例:8:00、9:00、10:00、11:00)
活動
CREATE TABLE activities (
activity text primary key
);
とプランナー
CREATE TABLE planner (
day text foriegn key references days (day)
time time foriegn key references times (time)
activity text foriegn key references activities (activity)
member bigint
primary key (day, time, member)
);
プランナーテーブルには、次のようなデータが含まれます。
friday, 09:00, squash_court1 , 2
friday, 09:00, squash_court2 , 3
friday, 09:00, squash_court3 , 1
私がやりたいことは、これら3つの裁判所の予約されていないすべての時間のリストを作成するので、次のようなリストがあります。
time activity
08:00 squash_court1
10:00 squash_court1
...rest of times...
08:00 squash_court2
10:00 squash_court2
...rest of times...
08:00 squash_court3
10:00 squash_court3
...rest of times...
8:00から10:00の間に9:00がない理由は、予約されているためです。
編集
現在、私は次の基本的な結合を持っています:
SELECT time , activity FROM times, activities;
今必要なのは、テーブルWHERE
で予約されているものを削除する句です。planner
この件についてアドバイスをありがとうございます。