所有类型的 OUTER-JOIN 的空值是我还是这正常?使用 Oracle db11g

Null values with all types of OUTER-JOIN is it me or is this normal? using Oracle db11g

我遇到了一些问题,我不知道我正在做的事情是正确的..还是大错特错。

我正在使用外连接概念。就我而言,他们三个都是。当我输入查询时,我得到 50% 的可见值和 50% 的空值。得到这个是正常的还是我的查询是错误的。我向您展示了我正在使用的几个示例。

查询1。我想做的是获取员工的姓名和他们工作的商店的地址。

select m.naam, w.adres, w.winkel_nummer
from medewerkers m, winkel w
where m.naam(+)= w.adres;

结果:

查询 2。我想获取所有 phone 个数字。在这种情况下,它来自员工和成员。

select s.telefoon_nummer, l.telefoon_nummer
from medewerkers s
full outer join lid l on s.telefoon_nummer = l.telefoon_nummer;

结果:

//注意:使用完整的外部连接我无法显示整个图片

两个结果的问题都是'they are not combined'。这是否意味着我写了一个错误的查询或者这是正常的?

希望我的问题不是太含糊。我在网上找不到解决方案

提前致谢

对于 #1,您似乎找错了方向....为什么要将员工姓名加入到地址中?这毫无意义。

select m.naam, w.adres, w.winkel_nummer
from medewerkers m, winkel w
where m.STOREKEYFIELD(+)= w.STOREKEYFIELD;

您必须在商店 table 的钥匙上加入两个 table 才能在那里得到任何有意义的东西。

对于 #2,如果您只想要来自 2 table 的 phone # 的完整列表,请使用 UNION:

select s.telefoon_nummer
from medewerkers s
union
select  l.telefoon_nummer
from lid l

没有必要加入任何东西,除非你只期待在两个 table 中匹配的东西。