You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

SQL Server查询无返回结果:User_History表Event_Id为空时如何获取数据?

解决User_History表Event_Id为空时无查询结果的问题

你的问题出在使用了内连接(INNER JOIN),这种连接只会返回两张表中完全匹配连接条件的行。当User_History的Event_Id为空时,无法和List_of_Events的Event_Id(int类型,通常非空)匹配,自然不会返回任何结果。

要保留User_History的所有行,不管Event_Id是否为空,你需要改用左连接(LEFT JOIN),并将User_History作为左表(主表):

Select 
  E.Event_Name As 'Event', 
  H.GIN, 
  H.GID, 
  H.UPN, 
  H.OneDrive, 
  H.SharePoint, 
  H.Mailbox, 
  H.Event_Date, 
  H.Extra 
From User_History H
Left Join List_of_Events E 
  on E.Event_Id = H.Event_Id

补充优化:

  • 左连接会保留左表(User_History)的所有记录,即使右表(List_of_Events)中没有匹配的Event_Id,此时Event_Name列会显示NULL。
  • 如果想给空的Event_Name设置默认显示文本,可以用COALESCE函数处理:
    Select 
      COALESCE(E.Event_Name, '无关联事件') As 'Event', 
      H.GIN, 
      H.GID, 
      H.UPN, 
      H.OneDrive, 
      H.SharePoint, 
      H.Mailbox, 
      H.Event_Date, 
      H.Extra 
    From User_History H
    Left Join List_of_Events E 
      on E.Event_Id = H.Event_Id
    

内容的提问来源于stack exchange,提问作者aasenomad

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.10 06:35:26