您的位置:首页 > 数据库

SQL基础--常见多表连接查询

2016-11-25 20:44 387 查看

SQL基础–常见多表连接查询

连接查询某些情况下可以减少查询次数,提高效率

等于/不等连接

通过WHERE条件进行连接查询


--相等连接
SELECT e.EMPLOYEE_ID, e.LAST_NAME, d.DEPARTMENT_ID, d.DEPARTMENT_NAME
FROM EMPLOYEES e, DEPARTMENTS d
WHERE e.DEPARTMENT_ID = d.DEPARTMENT_ID;


员工没有对应部门,则不会出现在结果中

外连接

通过(+)进行连接查询,分主表和副表


-- 外连接
SELECT e.EMPLOYEE_ID, e.LAST_NAME, d.DEPARTMENT_ID, d.DEPARTMENT_NAME
FROM EMPLOYEES e, DEPARTMENTS d
WHERE e.DEPARTMENT_ID = d.DEPARTMENT_ID(+);


员工没有部门(没有外键关系时),仍会显示在结果中,只是部门信息为空

自连接

通过连接自身来查询符合条件的结果


-- 自连接
SELECT e1.EMPLOYEE_ID, e1.LAST_NAME, e1.MANAGER_ID , e2.LAST_NAME
FROM EMPLOYEES e1, EMPLOYEES e2
WHERE e1.MANAGER_ID = e2.EMPLOYEE_ID;

SELECT e1.EMPLOYEE_ID, e1.LAST_NAME, e2.EMPLOYEE_ID , e2.LAST_NAME
FROM EMPLOYEES e1, EMPLOYEES e2
WHERE e1.EMPLOYEE_ID = e2.MANAGER_ID;


一般员工和主管新西都存在于员工表中
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐