【发布时间】:2015-02-17 04:09:20
【问题描述】:
我有两张桌子dbo.seat 和dbo.booking
dbo.seat
noSeat
------
1-2
1-3
1-4
1-8
4-2
4-3
4-4
5-1
5-2
dbo.booking
noBooking | noSeat | statusBooked | endTime
1002 1-4 0 2015-02-16 13:30:00.000
1003 1-4 1 2015-02-17 13:30:00.000
1004 1-8 1 2015-02-17 13:30:00.000
1005 1-2 0 2015-02-16 14:59:00.000
1006 1-3 0 2015-02-16 14:59:00.000
没有预定的seat.noSeat怎么取?
此示例显示seat 号码 1-4 和 1-8 已预订。我想知道有什么座位可用(输出都是seat.noSeat,除了1-4和1-8)?
表booking 用于预订交易,seat 是提供的座位列表。
更新:
当 endTime 等于 CurrentTime 时,statusBooked 将自动更新为 0。这意味着它已经结束并告诉我们1-4可用,直到有人再次预订(插入方法dbo.bookingstatusBooked默认为1)
【问题讨论】:
-
在“noseat”上的两个表之间使用内连接并将“WHERE”子句添加为“StatusBooked 1”
-
您有未预订座位的预订(statusBooked = 0)并且座位 1-4 既已预订又未预订?
-
@JamesZ 它的状态是该座位仍被预订或已可用。这意味着座位 1-4 已被某人预订,现在又被其他人预订。 0 可用 1 已预订
-
@PareshJ 我试试这个
SELECT s.noSeat FROM seat s INNER JOIN booking b ON s.noSeat = b.noSeat WHERE b.statusBooked <> 1,结果就是预订表中的内容。 -
我更新了我的问题
标签: sql-server sql-server-2008 join