Oracle 多表查询分析

版权声明:转载请备注原文链接 https://blog.csdn.net/qq_40868987/article/details/85080716

这两张表可以直接利用DEPTNO字段关联,所以需要利用WHERE字段来消除笛卡尔积

以上查询是之前基础的加强,有明确的关联字段,可是很多的查询是不会明确给出关联字段

例:要求查询每个雇员的编号,姓名,职位,基本工资,工资等级

| - 确定要使用的数据表,

EMP表:雇员的编号,姓名,职位,基本工资

salgrade表:工资等级

| - 确定已知的关联字段,

扫描二维码关注公众号,回复: 4607072 查看本文章

雇员与工资等级:emp.sal BETWEEN salgrade.losal and salgrade.hisal;

第一步:查询出每个雇员的编号,姓名,职位,基本工资现只需一张EMP表即可:

第二部:增加salgrade表,增加了数据表之后就需要引入WHERE子句消除笛卡尔积

*确定所需要的数据表

| --emp表:编号,姓名,职位,基本工资

| --dept表:部门名称

| --salgrade表:工资等级

*确定已知的关联字段:

| --emp.deptno = dept.deptno

| - 雇员与工资子集:

在salgrade.losal和salgrade.hisal之间的关系

第一步:编号,姓名,职位,基本工资

第二步:加入部门名称,增加一个表就增加一个条件,消除笛卡尔积

第三步:加入工资等级信息,与原始的消除笛卡尔积的条件应该同时满足,所以使用和连接

直接套就行了,加个表则加个条件

猜你喜欢

转载自blog.csdn.net/qq_40868987/article/details/85080716