0

我有 2 张桌子。为简单起见,“u”具有以下列
userid
divisionid

'd' 有以下内容:
Divisionid
名称

我没有创建这个表,否则我不会有这个问题。u.DIVISION可以为 NULL。d.DIVISION不能

运行以下命令会创建适当的数据,但它也会过滤掉每个具有 NULL 的用户 ID。无论如何,是否仍然显示所有用户 ID,而不管他们的部门 ID 是什么,如果部门 ID 不为空,则显示部门的名称?

“选择用户 ID,d.NAME
FROM u,d
WHERE u.divisionid = d.divisionid
ORDER BY userid”

4

2 回答 2

1

使用外连接:

SELECT userid, d.NAME
FROM u
LEFT OUTER JOIN division d
ON u.divisionid = d.divisionid
ORDER BY userid
于 2010-05-20T16:32:18.313 回答
-1

使用 Oracle 或隐含的连接语法意味着INNER JOIN. 内连接消除了不符合条件的记录。

使用该JOIN子句的显式连接允许您指定连接类型。

ALEFT OUTER JOIN保留第一个表中的所有行,无论第二个表中是否有匹配的行。

SELECT userid, d.NAME
FROM u
LEFT OUTER JOIN division d
ON d.divisionid = u.divisionid
ORDER BY userid
于 2010-05-20T16:42:18.337 回答