SQL结合查询

时间:2015-12-04 15:03:10

标签: sql

我想一次在SQL中执行多个查询,我知道如何单独执行每个查询但我找不到在单个查询中组合所有查询的方法 为此,我使用两个不同的表,第一个叫做预订

Table booking

对于我的第一个查询,我想只选择Rownumber的行,其中PerfDate = 2015-12-10和PerfTime = 16:00:00

我的第二张桌子很大,叫做座位,看起来像这样

enter image description here

对于我的第二个查询,我希望在与第一个查询的结果进行梳理时,从座位表中获取具有不同RowNumber的所有行

然后从两个查询的结果我想要只占用区域前面的行

任何人都可以帮助我,提前谢谢

2 个答案:

答案 0 :(得分:0)

您可以使用第一个查询作为第一个查询的条件,如下所示。因此,您可以说从座位表中选择RowNumber不在您的第一个查询中的所有内容。你也可以过滤掉这个结果,这样你只能获得如下所示的'Front Stalls':

Select * from YourSeatTable
where RowNumber not in (Select RowNumber from YourTable1
                        where PerfDate = '2015-12-10' and PerfTime='16:00:00')
  and Zone = 'front stalls'

答案 1 :(得分:0)

你也可以试试这个:

select * 
from seats s
where not exists (
  select 1
  from booking
  where 
        perfdate = '2015-12-10'
    and perftime = '16:00:00'
    and rownumber = s.rownumber
)
and zone = 'front stalls'

此查询可能比使用where in运行得更快。