SQL内部联接不返回具有空值的记录

幸运专家

我的“项目”表(postgreSQL数据库)中有2种不同类型的记录。一些项目与发票编号相关联,而发票编号与客户信息相关联。我的项目表中的其他项目没有关联的发票编号。

我正在尝试返回带有发票日期和客户名称的项目列表。没有发票或客户的项目也将显示,但这些字段将为空白。问题出在我当前的sql语句上。它仅显示与发票信息相关联的项目。

select items.ItemID, items.qty, items.description, customers.firstname,
customers.lastname, invoices.InvoiceDate, items.status 
from items 
inner join Invoices on items.InvoiceID = Invoices.InvoiceID 
inner join customers on Invoices.CustomerID = Customers.CustomerID 
where Items.Status = 'ONTIME' 
ORDER BY InvoiceDate asc

有什么想法可以让我显示所有记录吗?或者甚至有可能吗?没有数据的字段为NULL,我不确定这是否是问题的一部分。

戈登·利诺夫(Gordon Linoff)

您要使用left outer join而不是inner join

select i.ItemID, i.qty, i.description, c.firstname,
       c.lastname, inv.InvoiceDate, i.status 
from items i left outer join
     Invoices inv
     on i.InvoiceID = inv.InvoiceID left outer join
     customers c
     on inv.CustomerID = c.CustomerID 
where i.Status = 'ONTIME' 
order by InvoiceDate asc;

我还介绍了表别名,以使查询更易于阅读。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

SQL内部联接不返回具有空值的记录

来自分类Dev

具有空值的SQL多联接

来自分类Dev

如何联接具有空值的表

来自分类Dev

MySQL 3表联接具有空值

来自分类Dev

左外部联接具有空值

来自分类Dev

具有空值的SQL查询

来自分类Dev

使用 SQL 查询检索具有空值的记录时面临的问题

来自分类Dev

查询结果未显示具有空值的记录

来自分类Dev

Swagger 不选择具有空值的方法

来自分类Dev

具有空值的SQL查询分组返回重复项

来自分类Dev

返回具有空值的表会导致错误

来自分类Dev

Ajax 调用正在返回具有空值的对象

来自分类Dev

SpringFramework ResponseBody 返回具有空值的对象

来自分类Dev

具有多个内部联接的SQL查询返回错误的值计数

来自分类Dev

SQL空值内部联接

来自分类Dev

Oracle / SQL-查找具有一个不包含空值的值的记录

来自分类Dev

具有空值的SQL自连接

来自分类Dev

具有空值的SQL Server连接表

来自分类Dev

如何合并具有空值的SQL行

来自分类Dev

SQL Server与Oracle中具有空值的列

来自分类Dev

选择并附加具有空值的行 (SQL/VBA)

来自分类Dev

SQL:选择具有空值的其他列

来自分类Dev

SQL具有多个联接的记录的重复值

来自分类Dev

使用内部联接时具有不同值的SQL查询

来自分类Dev

使用内部联接时具有不同值的SQL查询

来自分类Dev

使用具有空值的列显示和联接表

来自分类Dev

在C ++中返回具有空状态(NULL)的对象,而不返回指针

来自分类Dev

Teradata SQL - 选择不同的返回重复行,其中一行具有空值

来自分类Dev

比较具有空值的日期