asp网站开发招聘,云南网站制作价格,中国知名十大室内设计公司排名,龙华网站建设价格1.内连接
内连接实际上就是利用 WHERE 子句#xff08;连接条件#xff09;对两张表形成的笛卡尔积#xff08;内连接#xff09;进行筛选#xff0c;我们之前学习的查询基本都是内连接#xff0c;也是在实际生产中被使用得最多的连接查询。
另外内连接还可以使用下面的…1.内连接
内连接实际上就是利用 WHERE 子句连接条件对两张表形成的笛卡尔积内连接进行筛选我们之前学习的查询基本都是内连接也是在实际生产中被使用得最多的连接查询。
另外内连接还可以使用下面的语法形式来达成内连接
# 内连接的语法形式
SELECT 字段 FROM 表1 [as] INNER JOIN 表2 [as] ON 连接条件 AND 其他条件;上述的语法形式比我们之前的笛卡尔积更加准确语义更加明显但结果一样。
# 尝试使用笛卡尔积的两种做法
mysql select emp.ename, dept.dname from emp, dept where emp.deptnodept.deptno;
--------------------
| ename | dname |
--------------------
| clark | accounting |
| king | accounting |
| miller | accounting |
| smith | research |
| jones | research |
| scott | research |
| adams | research |
| ford | research |
| allen | sales |
| ward | sales |
| martin | sales |
| blake | sales |
| turner | sales |
| james | sales |
--------------------
14 rows in set (0.00 sec)mysql select emp.ename, dept.dname from emp inner join dept where emp.deptnodept.deptno;
--------------------
| ename | dname |
--------------------
| clark | accounting |
| king | accounting |
| miller | accounting |
| smith | research |
| jones | research |
| scott | research |
| adams | research |
| ford | research |
| allen | sales |
| ward | sales |
| martin | sales |
| blake | sales |
| turner | sales |
| james | sales |
--------------------
14 rows in set (0.00 sec)2.外连接
外连接本身又分为左连接左侧的表完全显示 和 右连接右侧的表完全显示。
# 左连接和右连接的语法形式
SELECT 字段 FROM 表1 LEFT JOIN 表2 ON 连接条件;
SELECT 字段 FROM 表1 RIGHT JOIN 表2 ON 连接条件;我们来实际操作一下就知道了
# 左连接、右连接的使用
mysql select * from stu;
------------
| id | name |
------------
| 1 | jack |
| 2 | tom |
| 3 | kity |
| 4 | nono |
------------
4 rows in set (0.00 sec)mysql select * from exam;
-------------
| id | grade |
-------------
| 1 | 56 |
| 2 | 76 |
| 11 | 8 |
-------------
3 rows in set (0.00 sec)# (1)左连接查询学生对应的成绩但是如果有没找到的成绩也必须把所有学生名字显示出来
mysql select * from stu left join exam on stu.idexam.id;
-------------------------
| id | name | id | grade |
-------------------------
| 1 | jack | 1 | 56 |
| 2 | tom | 2 | 76 |
| 3 | kity | NULL | NULL |
| 4 | nono | NULL | NULL |
-------------------------
4 rows in set (0.00 sec)# (2)右连接显示学生对应的成绩但是如果没有找到的学生也必须把所有成绩显示出来
mysql select * from stu right join exam on stu.idexam.id;
-------------------------
| id | name | id | grade |
-------------------------
| 1 | jack | 1 | 56 |
| 2 | tom | 2 | 76 |
| NULL | NULL | 11 | 8 |
-------------------------
3 rows in set (0.00 sec)补充实际上右连接可以使用左连接替代只需要调换一下表的先后顺序即可。