内连接可以有空列

时间:2017-08-27 20:40:22

标签: sql null outer-join

我尝试了解外连接,我有一个问题。

假设在此查询之后所有列都不为空:

SELECT a.service_type_id, b.customer_member_id, a.service_name
FROM CUSTOMER_SERVICE_TYPE a,
     MEMBER_CUSTOMER_SERVICES b
WHERE a.service_type_id = b.service_type_id;

是否可以在其中一列中获取空字段?

1 个答案:

答案 0 :(得分:2)

首先,您问题的标题是“外部联接”,但您的查询是内部联接。

其次,使用古老的语法,查询格式不正确。它应该是:

SELECT cs.service_type_id, mcs.customer_member_id, cs.service_name
FROM CUSTOMER_SERVICE_TYPE cs JOIN
     MEMBER_CUSTOMER_SERVICES mcs
     ON cs.service_type_id = mcs.service_type_id;

第三,你的问题的答案是“不”。如果查询中的所有源列都不是NULL,则所有列都不能为NULL。如果它真的是OUTER JOIN,则列可以是NULL

注意:

  • 始终使用正确的,明确的JOIN语法。 从不FROM子句中使用逗号。
  • 您的表别名应该是列名的缩写,而不是无意义的字母。