使用带有null外键值的select查询检索数据

时间:2015-07-15 18:17:06

标签: sql select foreign-keys inner-join

我有一个名为Vendor和VendorType的2个表。给出结构

CREATE TABLE XCodesSCMERP.dbo.Vendor (
  VendorID INT IDENTITY,
  VendorTypeID INT NULL,
  VendorName VARCHAR(200) NULL,
  VendorCompany VARCHAR(200) NULL,
  FirstName VARCHAR(100) NULL,
  LastName VARCHAR(100) NULL,
  Contact VARCHAR(100) NULL,
  Phone VARCHAR(100) NULL,
  AltContact VARCHAR(100) NULL,
  Email VARCHAR(50) NULL,
  AddressBilledFrom VARCHAR(50) NULL,
  AddressShippedFrom VARCHAR(50) NULL,
  VendorNotes VARCHAR(500) NULL,
  OpeningBalance VARCHAR(100) NULL,
  OpeningDate VARCHAR(100) NULL,
  VendorAccountNo VARCHAR(100) NULL,
  CONSTRAINT PK_Vendor PRIMARY KEY CLUSTERED (VendorID),
  CONSTRAINT FK_Vendor_VendorTypeTable_VendorTypeID FOREIGN KEY (VendorTypeID) REFERENCES dbo.VendorTypeTable (VendorTypeID)
) ON [PRIMARY]
GO




CREATE TABLE XCodesSCMERP.dbo.VendorTypeTable (
  VendorTypeID INT IDENTITY,
  VendorType VARCHAR(100) NULL,
  VendorDesc VARCHAR(MAX) NULL,
  CONSTRAINT PK_VendorTypeTable PRIMARY KEY CLUSTERED (VendorTypeID)
) ON [PRIMARY] TEXTIMAGE_ON [PRIMARY]
GO

从表的结构可以清楚地看出,VendorTypeID是Vendor表中的外键。现在,当我想从Vendor表中检索包括VendorTypeTable字段VendorType的数据时,我必须使用内部连接才能正常工作。 但这是问题。它确实'没有显示没有选择任何vendorType即VendorTypeID的记录。据说它是空的。 现在这是我的问题,我如何检索那些没有任何供应商类型的记录。 对我来说很高兴,在我的问题中帮助我。

注意:

SELECT VendorID,VendorName,FirstName,LastName,VendorCompany,Contact,Phone,AltContact,Email,OpeningBalance,OpeningDate,VendorAccountNo ,VendorNotes FROM Vendor WHERE VendorTypeID='';

此查询不返回任何记录。

1 个答案:

答案 0 :(得分:0)

如果我理解正确,您只需要IS NULL

SELECT v.*
FROM Vendor v
WHERE VendorTypeID IS NULL;