表1有m行数据,表2有n行数据,查询结果有m*n行数据。
sql92标准:仅支持内连接
sql99标准(推荐):支持内连接、外连接(左外连接和右外连接)、交叉连接
内连接:等值连接、非等值连接、自连接
外连接:左外连接、右外连接、全外连接
交叉连接
(1)查询女生名及其对应的男朋友名
(2)查询员工名(last_name)和对应的部门名(department_name)————-(根据关联的id查询)
(3)查询员工名(last_name)、工种号(job_id)、工种名(job_title) (员工表:JDSC 工作表:JOBSC)——为表起别名,提升简洁度,避免歧义
如果为表起了别名,则查询的字段不能使用原来的表名去限定。
上述两个表的顺序可互换
(4)查询有奖金的员工名、部门名
(5)分组查询——查询每个城市的部门个数
(6)排序——查询每个工种的工种名和员工个数,并按员工个数降序
(7)三表连接——查询员工名、部门名和所在的城市
1)多表等值连接的结果为多表的交集部分
2)m表连接,至少需要n-1个连接条件
3)多表的顺序没有要求
4)一般需要为表起别名
5)可以搭配所有子句使用,例如排序、分组、筛选
以上为个人经验,希望能给大家一个参考,也希望大家多多支持。
发表评论