版权声明:转载请备注原文链接 https://blog.csdn.net/qq_40868987/article/details/85080716
这两张表可以直接利用DEPTNO字段关联,所以需要利用WHERE字段来消除笛卡尔积
以上查询是之前基础的加强,有明确的关联字段,可是很多的查询是不会明确给出关联字段
例:要求查询每个雇员的编号,姓名,职位,基本工资,工资等级
| - 确定要使用的数据表,
EMP表:雇员的编号,姓名,职位,基本工资
salgrade表:工资等级
| - 确定已知的关联字段,
雇员与工资等级:emp.sal BETWEEN salgrade.losal and salgrade.hisal;
第一步:查询出每个雇员的编号,姓名,职位,基本工资现只需一张EMP表即可:
第二部:增加salgrade表,增加了数据表之后就需要引入WHERE子句消除笛卡尔积
*确定所需要的数据表
| --emp表:编号,姓名,职位,基本工资
| --dept表:部门名称
| --salgrade表:工资等级
*确定已知的关联字段:
| --emp.deptno = dept.deptno
| - 雇员与工资子集:
在salgrade.losal和salgrade.hisal之间的关系
第一步:编号,姓名,职位,基本工资
第二步:加入部门名称,增加一个表就增加一个条件,消除笛卡尔积
第三步:加入工资等级信息,与原始的消除笛卡尔积的条件应该同时满足,所以使用和连接
直接套就行了,加个表则加个条件