mySQL连接查询(多表查询)---非等值连接、自连接(基于92版)

一、非等值连接

表与表之间没有相同项(或有相同但是不能用),但是表之间某个或某些项直接存在着一定的关系。

比如说员工信息表,里面包含员工工资,另外一张工资等级表将工资进行等级划分,而员工的工资就可以根据工资等级表来划分为某个等级。

#查询员工工资和工资等级

SELECT e.last_name 员工名, e.salary 员工工资, g.grade_level 工资等级
FROM
	employees e, jop_grades g
WHERE
	e.`salary` BETWEEN g.`lowest_sal` AND g.`highest_sal`;

也可以按如下所示写:

SELECT e.last_name 员工名, e.salary 员工工资, g.grade_level 工资等级
FROM
	employees e, jop_grades g
WHERE
	e.`salary` >= g.`lowest_sal` 
AND
     e.`salary` <=g.`highest_sal`;

输出结果:

二、自连接

自连接相当于等值连接,不同是等值连接的项在不同的表单当中,而自连接的连接项在同一个表单中。单一表单中某项和另外一项存在着关联关系。

比如说员工信息表中,普通员工A的领导是B,而B本身也是员工,因此也包含着员工信息表中。所以A的manager_id就是B的employee_id

#列出员工的名字和他的领导名字

SELECT e.last_name 员工名字, m.last_name 员工领导名字
FROM
	employees e, employees m
WHERE
	e.`manager_id` = m.`employee_id`;

输出结果:

发布了70 篇原创文章 · 获赞 4 · 访问量 3996

猜你喜欢

转载自blog.csdn.net/l0510402015/article/details/100516351