Msg 116, Level 16, State 1, Line 2当子查询没有引入EXISTS时,只能在选择列表中指定



当我试图运行这段代码时,我得到了这个错误消息

select *
from Folio_Guest
where FolioID = (
select *
from Folio
where ArrivalDate between '20190101' and '20210901'
)

子查询最多只需要返回一行和一列。也许你打算这样做:

select fg.*
from Folio_Guest fg
where fg.FolioID in (select f.folioID
from Folio f
where ArrivalDate between '20190101' and '20210901'
);

重要的变化如下:

  • 子查询只返回一列,该列应该与folioID匹配。
  • 比较使用in而不是=,因此它可以匹配多行,如果合适的话。

相关内容

  • 没有找到相关文章

最新更新