MySQL表连接查询语法
MySQL表连接查询语法
SQL92版本
- 内连接
- 等值连接
- 查询用户表A与用户表B之间因为编号关联
- select `name ‘员工名字‘,bName ‘B名字‘ from tb_userA a,tb_userB b where a.b_id = b.id
- 非等值连接
- 查询员工工资级别
- select salary ‘薪水‘,grade ‘等级‘ from tb_staff,tb_grade where stlary between tb_staff.grade and tb_grade.grade
- 自连接
- <把自己当做两个表来使用
- 查询员工属于哪个领导
- select a.staffName ‘员工姓名‘ ,b.leaderName ‘领导姓名‘ from tb_staff a,tb_staff b where a.staff_id = b.leader_id
- 92版本是没有外连接的
SQL99版本
- 内连接
- 语法: select 字段 from 表一 别名 [连接类型] jion 表二 别名 on 连接条件 [where][group by][having][order]
- 等值连接
- 查询员工名、部,门名
- select staffName ‘员工姓名‘,departmentName ‘部门名称 from tb_departments d inner join tb_staff s on s.department_id = d.department_id
- 非等值连接
- 查询员工的工资级别
- select salary,grade from staff s inner join tb_grade g on e.salary between g.lowes and g.highest
- 自连接
- 查询员工属于哪个领导
- select a.staffName , b.leaderName from staff a inner join staff b on a.staff_id = b.leader_id
- 外连接
- 左外: left [outer]
- 右外: right[outer]
- 全外: full[outer]
- 外连接查询的是主表的所有数据,如果从表有相匹配则输出,没有相匹配则补为null
- 外连接查询结果=内连接结果+主表中有而从表没有的结果
- 交叉连接: cross