【问题标题】:MS SQL Managment Studio: Saving Select Query with a left join leaves me with a ton of null valuesMS SQL Management Studio:使用左连接保存选择查询给我留下了大量的空值
【发布时间】:2015-02-13 23:01:30
【问题描述】:

我的目标是使用唯一 id 从 JAN 中抑制 DEC,并将结果导出到 txt 文件中。该查询运行良好,除了它返回大量空值(价值 41 个字段)。由于左连接,我假设这些来自 DEC 表。这是我第一次尝试这样的压制。我确信我错过了一个简单的声明来治愈我的疾病,但我不知道它可能是什么。或者有没有比左连接更有效的技术?

SELECT *
FROM [dbo].[Jan]
        LEFT JOIN [dbo].[DEC]
            ON [DEC].[ID] = [Jan].[ID]
WHERE   [DEC].[SSN] IS NULL

【问题讨论】:

  • 那么您需要添加更多过滤,以根据 IS NOT NULL 来确定您不想返回的值`这是一个不言自明的个人发言 这里是一个您应该随时使用的网站SQL Basics
  • 我认为您误解了这个问题,但 u/MrTinkz 很有帮助,所以谢谢。

标签: sql-server left-join


【解决方案1】:

因为您使用的是*,所以它会为您获取所有内容。

SELECT * 更改为SELECT JAN.columnNameDEC.columnName 等。如果您从两个表中声明您想要的列,它应该会给您正确的结果。

【讨论】:

  • 我想要来自 JAN 的所有列,而没有来自 DEC 的列。有没有办法在不单独完成所有 41 列 JAN 的情况下编写这个?
  • 或许选择 JAN.*?
  • SELECT Jan.* FROM Jan LEFT JOIN Dec ON Dec.ID = Jan.ID WHERE Dec.SSN IS NULL
猜你喜欢
  • 2019-10-08
  • 2013-07-31
  • 1970-01-01
  • 1970-01-01
  • 2017-08-17
  • 1970-01-01
  • 2023-03-20
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多