ITPub博客

首页 > 数据库 > Oracle > oracle学习笔记14-多表连接查询之内连接

oracle学习笔记14-多表连接查询之内连接

Oracle 作者:x-player 时间:2014-01-05 15:43:13 0 删除 编辑
如果想同时查找两个表中的数据应该怎么办呢?
oracle提供了几个连接的语法
SELECT table1.column,table2.column
FROM table1,table2
WHERE table1.column1=table2.column

其中from后面是多个表的表名,where后面是连接的条件,当多个表中有相同的字段时,把表名可以作为列名的前缀。

内连接

SELECT emp.empno,emp.ename,emp.job,emp.mgr,emp.hiredate,emp.sal,emp.comm,emp.deptno,dept.dname
FROM emp,dept
WHERE emp.deptno=dept.deptno;
oracle学习笔记14-多表连接查询之内连接

有些表的名字比较长,我们可以使用表别名,上面的代码可以修改为
SELECT x.empno,x.ename,x.job,x.mgr,x.hiredate,x.sal,x.comm,x.deptno,y.dname
FROM emp x,dept y
WHERE x.deptno=y.deptno;
可以来提高效率
我们也可以继续添加一些条件
SELECT emp.empno,emp.ename,emp.job,emp.mgr,emp.hiredate,emp.sal,emp.comm,emp.deptno,dept.dname
FROM emp,dept
WHERE emp.deptno=dept.deptno AND emp.deptno=20;
oracle学习笔记14-多表连接查询之内连接
上面是oracle的语法,在ANSI SQL中内连接的标准语法是使用INNER JION来连接两个表,通过ON子句来制定两个表的连接条件
SELECT x.empno,x.ename,x.job,x.mgr,x.hiredate,x.sal,x.comm,x.deptno,y.dname
FROM emp x INNER JOIN dept y ON x.deptno=y.deptno;
得到上面一致的结果
SELECT x.empno,x.ename,x.job,x.mgr,x.hiredate,x.sal,x.comm,x.deptno,y.dname
FROM emp x INNER JOIN dept y ON x.deptno=y.deptno
WHERE x.deptno=20;
同上。
<!-- 正文结束 -->

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/23060599/viewspace-1117495/,如需转载,请注明出处,否则将追究法律责任。

上一篇: 没有了~
下一篇: 没有了~
请登录后发表评论 登录
全部评论

注册时间:2009-12-22