00:00:00 1250 1400 30
14 rows selected.
idle>
这才是我们要的结果.笛卡尔积几乎我们不会需要.多表查询时基本都带有 where 子句来描述
多个表的关系 避免笛卡尔集
当两个表中有相同的列名时,为了区分 要在列前加上表名作前缀.
不冲突时 直接使用
idle> select deptno,empno,ename,dname,sal from emp a,dept b where b.deptno=a.deptno;
select deptno,empno,ename,dname,sal from emp a,dept b where b.deptno=a.deptno
*
ERROR at line 1:
ORA-00918: column ambiguously defined
因为 deptno 没有表前缀 冲突
idle>
在联合的两个表内取数据:描述 scott 在哪个部门
idle> select empno,ename,dname,sal from emp,dept where emp.deptno=dept.deptno and
ename='SCOTT';
EMPNO ENAME DNAME SAL
---------- ---------- -------------- ----------
7788 SCOTT RESEARCH 3000
idle>
表的别名
格式:表名 别名
给表取别名是很有必要的,因为有的表名很长 不便于引用时书写.
idle> select a.deptno,empno,ename,dname,sal from emp a,dept b where b.deptno=a.deptno and
ename='SCOTT';
DEPTNO EMPNO ENAME DNAME SAL
---------- ---------- ---------- -------------- ----------
20 7788 SCOTT RESEARCH 3000
idle>
评论0
最新资源