MySQL表连接查询

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

MySQL表连接查询

上一篇:查看MySql使用的数据库引擎


下一篇:BenchmarkSQL对数据库性能测试示例