后缀cc的网站,临沂网站建设找谁,靖州建设局网站,学校培训网站开发表连接 关系字段#xff1a;两表中有关联关系的字段 \关系字段#xff1a;两表之间存在关系的字段 什么是表连接#xff1f; 当我们的查询结果需要从多张表中获取时#xff0c;此时应该让表之间建立连接#xff0c;同时获取数据
内连接 特点#xff1a;同时对连接双方做…表连接 关系字段两表中有关联关系的字段 \关系字段两表之间存在关系的字段 什么是表连接 当我们的查询结果需要从多张表中获取时此时应该让表之间建立连接同时获取数据
内连接 特点同时对连接双方做约束双方只有符合连接条件的数据才会进行显示
select 表名.列名, 表名.列名,...
from 表名1 inner join 表名2
on 连接条件 -- 两表间的关系字段
-- 查询员工的id、工资与部门名称-- 第一步确定数据来自于哪些表-- 第二步确定两表之间的关系字段-- 书写表连接完成查询操作
select e.employee_id 员工id,e.salary 员工工资,d.department_name -- 基于连接结果进行查询操作
from employees e inner join departments d -- 起别名方便后续书写
on e.department_idd.department_id -- 关系字段员工表的部门id部门表的部门id from--join on确定数据来源 select查询操作 左外连接 特点左表中的数据无论如何都会显示右表中的数据只有符合连接条件才会显示
select 表名.列名, 表名.列名,...
from 左表 left outer join 右表
on 连接条件 -- 两表间的关系字段
-- 使用左外连接显示员工信息及其部门信息
select e.*,d.*
from employees e left outer join departments d -- 员工信息无论如何都会显示部门信息符合连接条件才会显示
on e.department_idd.department_id 右外连接 特点右表中的数据无论如何都会显示左表中的数据只有符合连接条件才会显示
select 表名.列名, 表名.列名,...
from 左表 right outer join 右表
on 连接条件 -- 两表间的关系字段
-- 使用右外连接显示部门信息及对应员工信息
select e.*,d.*
from employees e right outer join departments d
on e.department_idd.department_id 连接关键字中的inner、outer可以省略 全外连接了解 特点对双方都不做约束 作用将两个查询结果进行合并
查询结果1 union 查询结果2 使用 合并双方字段数目、内容必须一致 union关键字可以去重 union all 不会对结果去重
-- 查询员工表所有信息
select employee_id,first_name,salary from employees
union all -- 合并,不去重
-- 查询员工表所有信息
select employee_id,first_name,salary from employees
自连接 特点是特殊的表连接参与连接的是同一张表 使用 表中的两个字段为关系字段作为连接条件 -- 按照指定要求查询员工信息员工id员工姓名直接领导的id直接领导的姓名
select e1.employee_id 员工id,e1.first_name 员工姓名,e1.manager_id 领导id,e2.first_name 领导姓名
from employees e1 left join employees e2 -- e1:员工信息 e2领导信息
on e1.manager_ide2.employee_id -- 连接条件员工的领导id领导的员工id 连接双方判断同一字段作为连接条件 -- 查询工资相同的员工id及其工资
select e1.employee_id,e1.salary,e2.employee_id,e2.salary
from employees e1 left join employees e2 -- 连接参与比较的两个员工
on e1.salarye2.salary -- 两个员工的工资相同
where e1.employee_ide2.employee_id 如果查询字段来自于多张表内连接或左外连接 如果查询字段来自于一张表并且来自同一行数据则简单查询|子查询 如果查询字段来自于一张表但是不来自于同一行数据。则自连接 多表连接 特点同时从多张表中获取数据
select 表名.列名, 表名.列名,...
from 表1 left join 表2
on 连接条件 -- 表1和表2的关系字段
left join 表3
on 连接条件 -- 表1和表3的关系字段|表2和表3的关系字段
-- 查询员工id员工姓名所属部门id部门名称部门所在城市
select e.employee_id,e.first_name,d.department_id,d.department_name,l.city
from employees e left join departments d -- 先让员工表和部门表建立连接
on e.department_idd.department_id -- 员工的部门id部门的id
left join locations l -- 再让地址表参与连接
on d.location_idl.location_id -- 部门表的地址id地址表的id 实际开发中不建议表连接超过3张表否则会有性能问题