0

だから私は2つのテーブルを持っています。

表 1 の名前は「予定」で、フィールドはID(int)、TimeboxID(int)、Date(date) です。

表 2 の名前は「timebox」で、フィールドはID(int)、Weekday(int)、StartTime(varchar)です。

表 1 はすべての予定 ( Date+TimeboxIDコンボ) を保持し、表 2 は曜日ごとに利用可能なタイムスロットを定義します。

これが私の質問です: 1 つのクエリで、空き時間枠が利用可能な日付 (およびその数) を調べるにはどうすればよいですか?

ps。フィールドStartTimeは表示にのみ必要で、ここでは意味がありません。

4

1 に答える 1

1

次のようなものを使用する必要があります。

SELECT workdays.date, COUNT(DISTINCT timebox.ID) AS FreeTimeBoxes
FROM workdays
LEFT JOIN timebox ON (WEEKDAY(workdays.date) = timebox.Weekday)
LEFT JOIN appointment ON (workdays.date = appointment.date AND timebox.ID = appointment.TimeboxID)
WHERE appointment.ID IS NULL
GROUP BY workdays.date

テーブルの営業日を自動化されたものに置き換えるかどうかわからない

于 2012-06-30T18:38:22.127 に答える