0

我在 SQL Server 2008 中的 select 语句遇到了一点问题。我正在构建一个售票应用程序网站,我需要确保无法搜索已售出的门票。这是我的 SQL 存储过程:

    spGetSeatBySection
    @SectionID int
    AS
    SELECT
    [SeatID],
    [SectionID],
    [SeatName],
    [SeatPrice],
    [SeatDesc],
    [SeatIsActive],
  FROM [myDataBase].[dbo].[Seats]
  WHERE SectionID = @SectionID 
  AND SeatIsActive = 1 
  AND **IF EXISTS CLAUSE**;

我已经尝试了一些其他已在此处发布的方法,例如 if exists('table_name, 'column_name')。是否有另一种方法可以在不重新设计我的SELECT声明的情况下检查这一点?

4

1 回答 1

0

与EXISTS类似的东西:

    SELECT
    [SeatID],
    [SectionID],
    [SeatName],
    [SeatPrice],
    [SeatDesc],
    [SeatIsActive],
  FROM [myDataBase].[dbo].[Seats]
  WHERE SectionID = @SectionID 
  AND SeatIsActive = 1 
  AND EXISTS (SELECT o.SeatID 
              FROM OrderItems o
              WHERE o.SeatID = [Seats].SeatID )

你可能可以这样做:

     SELECT
    s.[SeatID],
    s.[SectionID],
    s.[SeatName],
    s.[SeatPrice],
    s.[SeatDesc],
    s.[SeatIsActive],
  FROM [myDataBase].[dbo].[Seats] s
       INNER JOIN OrderItems o ON o.SeatID = s.SeatID 
  WHERE s.SectionID = @SectionID 
  AND s.SeatIsActive = 1 
于 2013-03-18T22:11:25.320 回答