在SQL中使用多个on参数和join时接收空表

在SQL中使用多个on参数和join时接收空表,sql,postgresql,join,Sql,Postgresql,Join,我对sql相当陌生,我一直在进行一些基本练习以了解更多信息。我已经能够让我的所有其他连接返回我需要的答案,但这一个仍然逃避我 Select invoice.num from invoice join customer on customer.code = invoice.code and customer.lastname = 'Smith' ; 本质上,我试图找到史密斯的发票号,所以我使用客户的主键和发票表中的外键将这两个表链接在一起。这为我返回了所有发票号,因此当我添加更多参数以仅

我对sql相当陌生,我一直在进行一些基本练习以了解更多信息。我已经能够让我的所有其他连接返回我需要的答案,但这一个仍然逃避我

 Select invoice.num from invoice join customer
 on customer.code = invoice.code
 and customer.lastname = 'Smith'
 ;

本质上,我试图找到史密斯的发票号,所以我使用客户的主键和发票表中的外键将这两个表链接在一起。这为我返回了所有发票号,因此当我添加更多参数以仅过滤姓氏为smith的发票号时,我只得到返回给我的空表。是否存在我不知道的语法错误,或者是逻辑中的问题?

您的查询在语法和语义上都是正确的。
customer
中没有与
lastname='Smith'
对应的行,或者
invoice
中没有与
code
对应的
customer
表中的
lastname='Smith'
对应的行。注意,Postgres中的文本比较区分大小写。

谢谢,你完全正确。我回去查了一下桌子,发现史密斯没有对手。