【发布时间】:2018-02-05 03:24:43
【问题描述】:
我尝试了解外部联接,但遇到了一个问题。
假设所有列都不为空,查询后:
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;
是否可以在其中一列中获取空字段?
【问题讨论】:
-
您的示例查询是 INNER JOIN,它将检查两个表中 service_type_id 的匹配。列上不会有空值。如果您使用 OUTER JOIN 并且存在与您的条件不匹配的数据 (a.service_type_id = b.service_type_id),那么列上将会有空值。
-
你可以查看这个关于JOINS的链接stackoverflow.com/questions/17946221/…
-
今日提示:切换到现代、明确的
JOIN语法。更容易编写(没有错误),更容易阅读(和维护),并且在需要时更容易转换为外连接。 -
您的查询中没有 OUTER JOIN。逗号 (
,) 是 CROSS JOIN(优先级低于 INNER/CROSS/OUTER JOIN),即 INNER JOIN ON 1=1。请编辑您的问题,使标题、文本和代码一致。
标签: sql null outer-join