返回一个表中没有条目的值?

时间:2016-05-10 04:38:33

标签: sql sql-server

在这个例子中,我试图返回一个值列表(在这种情况下,公司名称),在另一个表中没有条目(在这种情况下,条目意味着发票)。换句话说,我正在尝试返回没有发票的公司列表。这是我的代码:

Select CompanyName From tblCompany join tblInvoice ON tblCompany.CompanyID = tblInvoice.CompanyID Where tblCompany.CompanyID NOT IN (Select CompanyID From tblInvoice)

我想要得到的是:

Desired Results

但是,当我运行代码时,没有显示任何值。谁能告诉我为什么?

3 个答案:

答案 0 :(得分:1)

试试这个

Select  CompanyName
From    tblCompany 
Where   tblCompany.CompanyID NOT IN    
    (   Select  CompanyID
        From    tblInvoice)

CompanyName来自tblCompanyCompanyID不存在的所有tblInvoice

或者您可以尝试下面的一个,

select CompanyName
from   tblCompany
left join tblInvoice on tblCompany.CompanyID = tblInvoice.CompanyID 
where  tblInvoice.CompanyID is null

答案 1 :(得分:1)

对空值使用左连接和过滤:

select CompanyName
from tblCompany
left join tblInvoice on tblCompany.CompanyID = tblInvoice.CompanyID 
where tblInvoice.CompanyID is null

这是有效的,因为错过的连接在连接表的值中返回空值。

答案 2 :(得分:0)

使用以下查询获得所需结果。

long double