常用与不同表之间的查询。
分类: 按功能分类:内连接(等值链接 非等值链接 自链接)
外连接(左外链接 右外连接 全外连接)
交叉链接

sql92语法内连接

等值连接

案例:查询员工名和对应的部门名(不同表中有一一对应的值。)

  1. SELECT `last_name`,`department_name`
  2. FROM employees,departments
  3. WHERE `employees`.`department_id`=`departments`.`department_id`;

运行结果:
2020-09-06_120937.png

当表名称复杂时,可以给表去起别名。如果表有了别名,查询的字段就不能再用别名

SELECT `last_name`,`employees`.`job_id`,`job_title`
FROM `employees`,`jobs`
WHERE `employees`.`job_id`=`jobs`.`job_id`;

SELECT `last_name`,e.`job_id`,`job_title`
FROM `employees` e,`jobs` j
WHERE e.`job_id`=j.`job_id`;  #起了别名之后,上面就不能再用原来的表名。

运行结果:
2020-09-06_121833.png

非等值连接

CREATE TABLE job_grades
(grade_level VARCHAR(3),
 lowest_sal  INT,
 highest_sal INT);

INSERT INTO job_grades
VALUES ('A', 1000, 2999);

INSERT INTO job_grades
VALUES ('B', 3000, 5999);

INSERT INTO job_grades
VALUES('C', 6000, 9999);

INSERT INTO job_grades
VALUES('D', 10000, 14999);

INSERT INTO job_grades
VALUES('E', 15000, 24999);

INSERT INTO job_grades
VALUES('F', 25000, 40000);

#1.查询员工的工资和工资级别
SELECT `salary`,`grade_level`
FROM `employees` e,`job_grades` l
WHERE `salary` BETWEEN  l.`lowest_sal` AND l.`highest_sal`     #自连接的体现

自连接