SQL空值内部联接

SQL空值内部联接,sql,Sql,如果值不为null,我只希望在内部联接上包含一个比较。例如,我正在比较地址一些地址具有相同的门牌号街道地址和标签,但具有不同的公寓号,但其他地址没有与之关联的公寓号,因此该值为空。这些值不会合并 左外部联接不起作用,因为我需要联接与具有空单元值的值关联的数据。有什么想法吗 select * from address a inner join ma_address ma on a.number=ma.number and a.street=ma.street and a.t

如果值不为null,我只希望在内部联接上包含一个比较。例如,我正在比较地址一些地址具有相同的门牌号街道地址和标签,但具有不同的公寓号,但其他地址没有与之关联的公寓号,因此该值为空。这些值不会合并

左外部联接不起作用,因为我需要联接与具有空单元值的值关联的数据。有什么想法吗

select * from address a
inner join ma_address ma
    on a.number=ma.number
    and a.street=ma.street
    and a.tag=ma.tag
    and a.apt=ma.apt
谢谢,

这是因为在SQL中,NULL不等于NULL。对于每个连接条件,请尝试类似的操作

(a.<col> = ma.<col> OR (a.<col> IS NULL AND ma.<col> IS NULL))
这是因为在SQL中,NULL不等于NULL。对于每个连接条件,请尝试类似的操作

(a.<col> = ma.<col> OR (a.<col> IS NULL AND ma.<col> IS NULL))
NULL值表示该值未知。NULL值与空值或零值不同。没有两个空值相等。两个空值之间或空值与任何其他值之间的比较返回unknown,因为每个空值的值都是未知的。 空值通常表示未知、不适用或稍后将添加的数据。例如,客户下单时可能不知道客户的中间首字母。 以下是有关空值的信息: 1.要测试查询中的空值,请在WHERE子句中使用IS null或IS NOT null。 2.在SQL Server Management Studio代码编辑器中查看查询结果时,空值在结果集中显示为空。 3.可以通过在INSERT或UPDATE语句中显式声明Null、在INSERT语句中保留列或使用ALTER table语句将新列添加到现有表中,将Null值插入到列中。 4.空值不能用于区分表中一行与表中另一行所需的信息,例如主键

来源:

空值表示该值未知。NULL值与空值或零值不同。没有两个空值相等。两个空值之间或空值与任何其他值之间的比较返回unknown,因为每个空值的值都是未知的。 空值通常表示未知、不适用或稍后将添加的数据。例如,客户下单时可能不知道客户的中间首字母。 以下是有关空值的信息: 1.要测试查询中的空值,请在WHERE子句中使用IS null或IS NOT null。 2.在SQL Server Management Studio代码编辑器中查看查询结果时,空值在结果集中显示为空。 3.可以通过在INSERT或UPDATE语句中显式声明Null、在INSERT语句中保留列或使用ALTER table语句将新列添加到现有表中,将Null值插入到列中。 4.空值不能用于区分表中一行与表中另一行所需的信息,例如主键


来源:

您正在使用哪些rdbms?从多个表中使用SELECT*可能会导致混淆。最好在选择标准中明确一些。您也可以使用union。如果您使用的是MySQL,您可以使用空安全相等运算符。您还可以更改模式,使这些字段的默认值为而不是空。您使用的是哪种rdbms?从多个表中使用SELECT*可能会导致混淆。最好在你的选择标准中明确一些。你也可以使用union。如果你使用MySQL,你可以使用null安全相等运算符。你还可以更改你的模式,使这些字段的默认值为,而不是null。这个答案非常有效。另一件让我大吃一惊的事是,该列中填充了字符串值“NULL”,而不是NULL。这个答案非常有效。另一件让我大吃一惊的事情是,该列中填充了字符串值“NULL”,而不是NULL。