爱网站排行,中国seo排行榜,网站附件做外链,ui设计模板网站内连接和外连接
表的连接分为内连接和外连接#xff0c;内连接就是将需要连接的表形成笛卡尔积筛选#xff1b;外连接分为左外连接和右外连接#xff0c;左外连接为左侧的表需要完全显示#xff0c;右外连接为右侧的表现需要完全显示。 文章目录 内连接和外连接内连接外…内连接和外连接
表的连接分为内连接和外连接内连接就是将需要连接的表形成笛卡尔积筛选外连接分为左外连接和右外连接左外连接为左侧的表需要完全显示右外连接为右侧的表现需要完全显示。 文章目录 内连接和外连接内连接外连接左外连接右外连接 内连接
内连接实际上就是使用where子句对两种表形成的笛卡尔积进行筛选前面文章MySql中表的复合查询-CSDN博客中介绍的查询都是内连接查询在实际开发项目中用得最多的也是内连接查询。
语法
select 字段 from 表1 inner join 表2 on 连接条件 and 其他条件; 显示SMITH的名字和部门名称如下
mysql select ename, dname from emp, dept where emp.deptno dept.deptno and ename SMITH;
-----------------
| ename | dname |
-----------------
| SMITH | RESEARCH |
-----------------
1 row in set (0.00 sec)-- 使用标准的内连接写法
mysql select ename, dname from emp inner join dept on dept.deptno emp.deptno and ename SMITH;
-----------------
| ename | dname |
-----------------
| SMITH | RESEARCH |
-----------------
1 row in set (0.00 sec)外连接
外连接分为左外连接和右外连接
左外连接
在联合查询中左侧的表完全显示就为左外连接。
语法
select 字段名 from 表名1 left join 表名2 on 连接条件; 案例如下
如上所示创建的两张表。
查询所有学的成绩若这个学生没有成绩也要将该学生的个人信息显示出来如下
mysql select stu.id, name, grade from stu left join exam on exam.id stu.id;
-------------------
| id | name | grade |
-------------------
| 1 | jack | 56 |
| 2 | tom | 76 |
| 3 | kity | NULL |
| 4 | nono | NULL |
-------------------
4 rows in set (0.00 sec)右外连接
联合查询中右侧的表完全显示就是右外连接。
语法
select 字段 from 表名1 right join 表名2 on 连接条件 对stu和exam表联合查询把所有的成绩都显示出来即使这个成绩没有学生与其对应也要显示如下
mysql select stu.id, name, grade from stu right join exam on exam.id stu.id;
-------------------
| id | name | grade |
-------------------
| 1 | jack | 56 |
| 2 | tom | 76 |
| NULL | NULL | 8 |
-------------------
3 rows in set (0.00 sec) 列出部门名称和这些部门的员工信息同时列出没有员工的部门如下
select dname, emp.* from dept left join emp on dept.deptno emp.deptno;select dname, emp.* from emp right join dept on dept.deptno emp.deptno;