ORACLE Natural Join returns 空结果 "no rows selected" 两个表具有相同的列
ORACLE Natural Join returns empty results "no rows selected" have same columns both tables
你好,我的主要目标是获取 x tables 并加入它们 w/o 获取重复的列,用于检测连接操作的行。
所以我发现自然连接是我一直在寻找的东西:
不需要内部连接的结果:
http://s11.postimg.org/ujtadadj7/image.png
自然连接的好结果:
http://s28.postimg.org/yy6tmca0d/image.png
问题是当我尝试对其他 table(不是用户)做同样的事情时
我得到零结果 ):
select * from guilds natural join players;
公会 table 有 guild_id 而玩家有 guild_id.
为什么会这样?
我应该如何实现我的目标还有另一种方法吗?
请帮助我,我整天都在寻找解决方案。 . .
感谢所有愿意提供帮助的人!
如果您执行 NATURAL JOIN
,您的连接将在连接表共有的每一列上完成;因此,如果您有多个同名列,它们将全部用于连接。这可能就是您的结果中没有行的原因。
INNER JOIN
可以像您一样完成,使用 ON (tab1.field = tab2.field)
或 USING
子句,无需重复字段;
SQL> select *
2 from dual
3 natural join dual;
DUMMY
----------
X
SQL> select *
2 from dual d1
3 inner join dual d2 on (d1.dummy = d2.dummy);
DUMMY DUMMY
---------- ----------
X X
SQL> select *
2 from dual d1
3 inner join dual d2 using(dummy);
DUMMY
----------
X
你好,我的主要目标是获取 x tables 并加入它们 w/o 获取重复的列,用于检测连接操作的行。 所以我发现自然连接是我一直在寻找的东西:
不需要内部连接的结果:
http://s11.postimg.org/ujtadadj7/image.png
自然连接的好结果:
http://s28.postimg.org/yy6tmca0d/image.png
问题是当我尝试对其他 table(不是用户)做同样的事情时 我得到零结果 ):
select * from guilds natural join players;
公会 table 有 guild_id 而玩家有 guild_id.
为什么会这样? 我应该如何实现我的目标还有另一种方法吗? 请帮助我,我整天都在寻找解决方案。 . . 感谢所有愿意提供帮助的人!
如果您执行 NATURAL JOIN
,您的连接将在连接表共有的每一列上完成;因此,如果您有多个同名列,它们将全部用于连接。这可能就是您的结果中没有行的原因。
INNER JOIN
可以像您一样完成,使用 ON (tab1.field = tab2.field)
或 USING
子句,无需重复字段;
SQL> select *
2 from dual
3 natural join dual;
DUMMY
----------
X
SQL> select *
2 from dual d1
3 inner join dual d2 on (d1.dummy = d2.dummy);
DUMMY DUMMY
---------- ----------
X X
SQL> select *
2 from dual d1
3 inner join dual d2 using(dummy);
DUMMY
----------
X