1、Mysql链接查询
1.1、自连接
自连接:两张关联表都是同一张表,通过自身关联来查询
1.1.1、查询每个员工的员工编号、员工姓名、领导编号、领导姓名
分析:员工编号、姓名在员工表,领导编号、姓名也在员工表
SELECT e.ENAME,e.EMPNO,e.MGR,m.ENAME from emp e,emp m where e.MGR = m.EMPNO; -- 关联查询
1.2、左链接:
左链接:以左表为主,左表的数据全部显示,右表的数据如果匹配到了就显示,没有匹配到就用空值代替
要求:查询所有员工的员工编号、员工姓名、部门编号、部门名称
SELECT e.ENAME,e.EMPNO,e.MGR,m.ENAME from emp e LEFT JOIN emp m on(e.MGR = m.EMPNO);
左链接分析:
1.3右链接:
右链接:以右表为主,右边的数据全部显示,左边的数据如果显示到了就显示,没有匹配到用空值代替
要求:查询所有部门下的员工编号、员工姓名、部门编号、部门名称:
SELECT e.ENAME,e.EMPNO,e.MGR,m.ENAME from emp e RIGHT JOIN emp m on(e.MGR = m.EMPNO);
1.4、结果集合并:
将两个查询结果集合并,可以通过UNION、UNION ALL
面试题:unnion、union all区别:
UNION:返回查询结果的全部内容,重复数据不显示
UNION ALL:返回查询结果的全部内容,重复数据也显示
示例:
UNION
UNION ALL: