我对我正在为大学访客讲座工作的数据库提出疑问。目前我所拥有的是:
lectures_available
+----------------+---------+-----------+-----------+
|availableSlotID |roomID |availableDate|availableTime|
+----------------+---------+-----------+-----------+
| 1 | 1 | Monday | 09:00:00 |
| 2 | 1 | Tuesday | 07:00:00 |
| 3 | 1 | Tuesday | 12:00:00 |
| 4 | 2 | Wednesday | 11:00:00 |
| 5 | 2 | Wednesday | 12:00:00 |
| 6 | 2 | Thursday | 10:00:00 |
| 7 | 3 | Tuesday | 14:00:00 |
| 8 | 3 | Friday | 09:00:00 |
+----------------+---------+-----------+-----------+
guest_lectures
+---------+-----------------------+----------+
| roomID | lecture | capacity |
+---------+-----------------------+----------+
| 1 | Engineering | 3 |
| 2 | Social Science | 3 |
| 3 | Archaeology | 2 |
| 4 | Biochemistry | 0 |
+---------+-----------------------+----------+
我想知道的是,是否可以将roomID从lectures_available链接到guest_lectures中的容量?
例如,现在我有1个房间1(工程讲堂)的3个可用日期,其容量为3.但是在这3个预订之后,容量应该变为2.
一点帮助将不胜感激! :) 谢谢!
答案 0 :(得分:0)
您可以使用capacity
更新JOIN
列。
UPDATE guest_lectures AS l
LEFT JOIN lectures_available AS a ON l.room_id = a.room_id
SET l.capacity = IFNULL(COUNT(a.roomID), 0)
答案 1 :(得分:0)
我认为容量不应该是guest_lectures
中的列,您应该动态生成它:
SELECT lecture, COUNT(l.roomID) AS capacity
FROM guest_lectures g
LEFT JOIN lectures_available l ON g.roomID = l.roomID
GROUP BY g.roomID