当前位置:网站首页>mysql多表查询
mysql多表查询
2022-07-28 05:21:00 【大数据小理】
**mysql多表查询**
#多表的查询如何实现
SELECT employee_id,department_name
FROM employees,departments
#查询出来了2889条记录
SELECT * FROM employees; #查询出107条记录
SELECT 2889/107
FROM DUAL; #结果是27
SELECT * FROM departments; #可以查询到有27个部门
#多表查询的正确方式:要有多表的连接条件
SELECT employee_id,department_name,employees.department_id
FROM employees,departments
WHERE employees.department_id=departments.department_id;
#查询员工的employee_id,last_name,department_name,city
SELECT e.employee_id,e.last_name,d.department_name,l.city
FROM employees e,departments d,locations l
WHERE e.department_id=d.department_idAND d.location_id=l.location_id;
#非等值连接的例子
SELECT *
FROM job_grades;
#查询员工姓名以及其管理者的姓名
SELECT emp.employee_id,emp.last_name,mgr.employee_id,mgr.last_name
FROM employees emp,employees mgr
WHERE emp.manager_id=mgr.employee_id;
#练习:查询所有员工的last_name,department_name信息
SELECT employee_id,department_name
FROM employees,departments
WHERE employees.department_id=departments.department_id;
#SQL92语法实现内连接如上
#sql92实现外连接在mysql上不能跑,可以使用oracle来实现语句如下
#SQL92语法实现左外连接:右面要使用+ 如下
SELECT employee_id,department_name
FROM employees,departments
WHERE employees.department_id=departments.department_id(+);
#SQL92语法实现右外连接:左面要使用+ 如下
SELECT employee_id,department_name
FROM employees,departments
WHERE employees.department_id(+)=departments.department_id;
#sql99语法实现内连接
SELECT last_name,department_name
FROM employees e
JOIN departments d
ON e.department_id=d.department_id;
SELECT last_name,department_name,city
FROM employees e
JOIN departments d
ON e.department_id=d.department_id
JOIN locations l
ON d.location_id=l.location_id;
SELECT last_name,department_name
FROM employees e
JOIN departments d
ON e.department_id=d.department_id
JOIN locations l
ON d.location_id=l.location_id
#sql99语法实现外连接+
#左外连接
SELECT last_name,department_name
FROM employees e
LEFT OUTER JOIN departments d
ON e.department_id=d.department_id;
#右外连接
SELECT last_name,department_name
FROM employees e
RIGHT OUTER JOIN departments d
ON e.department_id=d.department_id;
#各种连接
#内连接
SELECT employee_id,last_name,department_name
FROM employees e
JOIN departments d
ON e.department_id=d.department_id;
#左外连接
SELECT employee_id,last_name,department_name
FROM employees e
LEFT JOIN departments d
ON e.department_id=d.department_id;
#右外连接
SELECT employee_id,last_name,department_name
FROM employees e
RIGHT JOIN departments d
ON e.department_id=d.department_id;
#只有左边:要用右边表的字段is null
SELECT employee_id,last_name,department_name
FROM employees e
LEFT JOIN departments d
ON e.department_id=d.department_id
WHERE d.department_id IS NULL;
#只有右边:要用左边表的字段is null
SELECT employee_id,last_name,department_name
FROM employees e
RIGHT JOIN departments d
ON e.department_id=d.department_id
WHERE e.department_idIS NULL;
#满外连接:左外连union all上只有右边
SELECT employee_id,last_name,department_name
FROM employees e
LEFT JOIN departments d
ON e.department_id=d.department_id
UNION ALL
SELECT employee_id,last_name,department_name
FROM employees e
RIGHT JOIN departments d
ON e.department_id=d.department_id
WHERE e.department_idIS NULL;
#满外连接:右外连 union all上只有左边
SELECT employee_id,last_name,department_name
FROM employees e
RIGHT JOIN departments d
ON e.department_id=d.department_id
UNION ALL
SELECT employee_id,last_name,department_name
FROM employees e
LEFT JOIN departments d
ON e.department_id=d.department_id
WHERE d.department_idIS NULL;
#sqL 99新特性:自然连接(natural join) ,一般不用,其必须满足相同字段等值的内容才显示
SELECT last_name,department_name
FROM employees e
NATURAL JOIN departments d
#sqL 99新特性:using join
SELECT last_name,department_name
FROM employees e
JOIN departments d
ON e.department_id=d.department_id;
边栏推荐
猜你喜欢
随机推荐
ArcMap中的距离工具条(Distance)
数字藏品的生意没那么好做
记某淘宝客软件分析拿库思路
进程线程协程的区别
MarsNFT :个人如何发行数字藏品?
命令注入绕过方式总结
撞脸ins? Mars数字藏品平台探索数字藏品轻社交
Zotero——一款文献管理工具
Microsoft edge browser plug-in (2)
Set scroll bar
Annotation and grid addition of ArcGIS map making
Some problems of ArcGIS Engine Installation
Sankey diagram drawing based on highcharts platform
数字藏品以虚强实,赋能实体经济发展
Community epidemic access management system based on PHP (PHP graduation design)
animation动画实现划过(点击)暂停
ctfshow单身狗 -- web
书籍-聪明的投资者
Help document making based on easy CHM and vs
7月7日国风廿四节气《小暑》来袭!!附..合..成..预..告..








