Wil*_*ill 1 sql oracle syntax inner-join
我现在无法访问Oracle数据库,所以我在这里发布我的问题:
以下语句是否有效Oracle SQL语法?
SELECT a1
FROM t1 INNER JOIN t2
Run Code Online (Sandbox Code Playgroud)
我特别想知道是否需要为内连接指定连接属性.
最好的,威尔
你错过了 ON
喜欢
SELECT a1
FROM t1 INNER JOIN t2
ON t1.SomeID = t2.SomeID
Run Code Online (Sandbox Code Playgroud)
所以,这是你想到的查询......
SQL> select e.ename
2 , d.dname
3 from emp e inner join dept d
4 /
from emp e inner join dept d
*
ERROR at line 3:
ORA-00905: missing keyword
SQL>
Run Code Online (Sandbox Code Playgroud)
我们可以看到,它失败了.INNER JOIN语法要求我们提供要加入的列...
SQL> select e.ename
2 , d.dname
3 from emp e inner join dept d
4 on ( d.deptno = e.deptno )
5 /
ENAME DNAME
---------- --------------
SCHNEIDER ACCOUNTING
BOEHMER ACCOUNTING
KISHORE ACCOUNTING
ROBERTSON RESEARCH
...
FEUERSTEIN HOUSEKEEPING
PODER HOUSEKEEPING
TRICHLER HOUSEKEEPING
21 rows selected.
SQL>
Run Code Online (Sandbox Code Playgroud)
还有一种替代语法,即NATURAL JOIN.此语法将根据共享相同名称的所有列自动连接两个表.
SQL> select e.ename
2 , d.dname
3 from emp e natural join dept d
4 /
ENAME DNAME
---------- --------------
SCHNEIDER ACCOUNTING
BOEHMER ACCOUNTING
KISHORE ACCOUNTING
ROBERTSON RESEARCH
...
FEUERSTEIN HOUSEKEEPING
PODER HOUSEKEEPING
TRICHLER HOUSEKEEPING
21 rows selected.
SQL>
Run Code Online (Sandbox Code Playgroud)
这是一个巧妙的技巧,但实际上不应该依赖于生产代码; 这是一个等待发生的错误.