当前位置:网站首页>sql语句之多表查询
sql语句之多表查询
2022-07-31 04:47:00 【jiey0407】
文章目录
一、笛卡尔积(交叉连接) ---->cross join
1、概念
笛卡尔积又称为“交叉连接”,将两个表中所有数据行。返回结果集合中的数据行数等于第一个表中符合查询条件的数据行数乘以第二个表中符合查询条件的数据行数。
(相当于合并两张表单为一张,表单中所有字段都保存展示)
例如,A={a,b},B={0,1,2} 则
AxB={<a,o>,<a,1>,<a,2>,<b,0>,<b,1>,<b,2>,}
BxA={<0,a>,<0,b>,<1,a>,<1,b>,<2,a>,<2,b>}
2. 语法
在MySQL中可以为CROSS JOIN或者省略CROSS即JOIN,或者使用’,’
SELECT * FROM table1 CROSS JOIN table2;
SELECT * FROM table1 JOIN table2;
SELECT * FROM table1 , table2;
3.示例
示例1、合并两个表内容(纯粹连接查询)
select * from employees,dept_emp;
二、内连接---->inner join
1、概念
在MySQL中把INNER JOIN叫做等值连接,即需要指定等值连接条件INNER JOIN被划分在一起。
(1)、必须有等值条件;
(2)、内连接可能会丢失信息;
(内连接是从结果表中删除与其他被连接表中没有匹配行的所有行)
(3)、重点:内连接,只查匹配行。
2. 语法
第一种:只使用where
SELECT * FROM table1 a,table2 b where a.id=b.id ;
第二种:join…on
SELECT * FROM table1 a JOIN table2 b on a.id=b.id;
第三种:inner join … on
SELECT * FROM table1 a inner join table2 b on a.id=b.id;
3.示例
select * from salaries a,dept_manager b where a.emp_no=b.emp_no;
select * from salaries a join dept_manager b on a.emp_no=b.emp_no;
三、外链接---->outer join
1、概念
分为左外连接( LEFT OUTER JON )和右连接(RIGHT OUTER JOIN),
即除了返回符合连接条件的结果之外,
还要返回左表(左连接)或者右表(右连接)中不符合连接条件的结果,相对应的使用NULL对应。
1、左外连接 left inner join
左边主表,左所有数据都显示,右边显示相关联 ,没有数据显示null
2、右外连接 right inner join
右边主表,右所有数据都显示,左边显示相关联 ,没有数据显示null
2. 语法
SELECT * FROM table1 a left join table2 b on a.id=b.id ;
SELECT * FROM table1 a right join table2 b on a.id=b.id;
3.示例
(1)两张表以左表为准
select * from salaries a left join dept_manager b on a.emp_no=b.emp_no;
(2)三张表
A left join B on A.id=B.id left join C on B.code=C.code
SELECT last_name, first_name, dept_name
FROM employees a LEFT JOIN dept_emp b ON a.emp_no=b.emp_no
LEFT JOIN departments c ON b.dept_no=c.dept_no;
四、联合连接---->union
1、概念
两个sql语句,中间用union连接
union all 分别查看&不去重
2.示例
select device_id, gender, age, gpa
from user_profile
where university='山东大学'
union all
select device_id, gender, age, gpa
from user_profile
where gender='male'
先自我介绍一下,小编13年上师交大毕业,曾经在小公司待过,去过华为OPPO等大厂,18年进入阿里,直到现在。深知大多数初中级java工程师,想要升技能,往往是需要自己摸索成长或是报班学习,但对于培训机构动则近万元的学费,着实压力不小。自己不成体系的自学效率很低又漫长,而且容易碰到天花板技术停止不前。因此我收集了一份《java开发全套学习资料》送给大家,初衷也很简单,就是希望帮助到想自学又不知道该从何学起的朋友,同时减轻大家的负担。添加下方名片,即可获取全套学习资料哦
边栏推荐
猜你喜欢
ERROR 2003 (HY000) Can‘t connect to MySQL server on ‘localhost3306‘ (10061)解决办法
Unity打灵狐者
exsl文件预览,word文件预览网页方法
pom文件成橘红色未加载的解决方案
论治理与创新 | 2022开放原子全球开源峰会OpenAnolis分论坛圆满召开
BUG消灭者!!实用调试技巧超全整理
XSS shooting range (3) prompt to win
ENSP, VLAN division, static routing, comprehensive configuration of Layer 3 switches
C language confession code?
Unity手机游戏性能优化系列:针对CPU端的性能调优
随机推荐
STM32HAL library modifies Hal_Delay to us-level delay
STM32HAL库修改Hal_Delay为us级延时
PCL 计算点云坐标最值及其索引
Visual studio shortcuts that improve efficiency, summary (updated from time to time)
Reinforcement learning: from entry to pit to shit
[py script] batch binarization processing images
MySQL database backup
【云原生】DevOps(五):集成Harbor
【py脚本】批量二值化处理图像
从零开始,一镜到底,纯净系统搭建除草机(Grasscutter)
volatile内存语义以及实现 -volatile写和读对普通变量的影响
PWN ROP
MySQL to revise the root password
递归实现汉诺塔问题
HCIP第十天_BGP路由汇总实验
【R语言】【3】apply,tapply,lapply,sapply,mapply与par函数相关参数
The input input box displays the precision of two decimal places
The idea project obviously has dependencies, but the file is not displayed, Cannot resolve symbol 'XXX'
简易网络文件拷贝的C实现
Industry landing presents new progress | 2022 OpenAtom Global Open Source Summit OpenAtom OpenHarmony sub-forum was successfully held