所有类型的 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 中匹配的东西。
我遇到了一些问题,我不知道我正在做的事情是正确的..还是大错特错。
我正在使用外连接概念。就我而言,他们三个都是。当我输入查询时,我得到 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 中匹配的东西。