Sql server 如何在SQL Server 2008中联接两个表
我有两张桌子,分别是dbo.seat和dbo.booking 副驾驶座 预订部 哪一个座位没有预订 此示例显示1-4和1-8号座位已预订。我想知道什么座位是可用的输出是除1-4和1-8之外的所有座位 桌位预订是预订交易,座位是提供的座位列表 更新: 当endTime等于CurrentTime时,statusBooked将自动更新为0。这意味着它结束了,并告诉我们1-4是可用的,直到有人再次预订它插入方法到dbo。默认情况下预订状态预订1Sql server 如何在SQL Server 2008中联接两个表,sql-server,sql-server-2008,join,Sql Server,Sql Server 2008,Join,我有两张桌子,分别是dbo.seat和dbo.booking 副驾驶座 预订部 哪一个座位没有预订 此示例显示1-4和1-8号座位已预订。我想知道什么座位是可用的输出是除1-4和1-8之外的所有座位 桌位预订是预订交易,座位是提供的座位列表 更新: 当endTime等于CurrentTime时,statusBooked将自动更新为0。这意味着它结束了,并告诉我们1-4是可用的,直到有人再次预订它插入方法到dbo。默认情况下预订状态预订1 select * from dbo.seat where
select *
from dbo.seat
where noseat not in (
select noseat
from dbo.booking
where statusbooking = 1
)
这是我的猜测。我不能说我真的理解noseat的意思,除非它是座位数?在noseat上的两张桌子之间使用内部连接,并添加WHERE子句作为StatusBooked 1您有未预订的预订座位StatusBooked=0,并且座位1-4既预订又未预订?@JamesZ it’s for status表示该座位是否仍预订或已预订。这意味着1-4号座位被别人预订了,现在又被别人预订了。0可用,1可用booked@PareshJ我尝试从座位的内部加入预订b中选择s.noSeat,在s.noSeat=b.noSeat其中b.statusBooked 1,结果是预订表中的内容。我更新我的问题座位号。是的,你是对的。它起作用了。但这对将来的任何情况都是可能的吗@据我所知,她想要100英镑。如果有一行statusBooking等于1,则该座位应排除在结果之外。这几乎就是它的全部功能。您可能应该使用显式的选择列表,但c代码中肯定存在另一个问题。如果您仍然需要帮助,最好提供完整的错误消息。听起来这是一个独立的问题。
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
select *
from dbo.seat
where noseat not in (
select noseat
from dbo.booking
where statusbooking = 1
)