1.创建测试表https://www.cndba.cn/hbhe0316/article/22210
mysql> select * from t1;
+------+--------+
| id | kemu |
+------+--------+
| 1 | yuwen |
| 2 | shuxue |
| 3 | yingyu |
+------+--------+
3 rows in set (0.00 sec)
mysql> select * from t2;
+------+-------+
| id | score |
+------+-------+
| 4 | 80 |
| 2 | 90 |
| 3 | 100 |
+------+-------+
3 rows in set (0.00 sec)
2.left join
顾名思义,就是“左连接”,表1左连接表2,以左为主,表示以表1为主,关联上表2的数据,查出来的结果显示左边的所有数据,然后右边显示的是和左边有交集部分的数据。如下:
mysql> select * from t1 left join t2 on t1.id=t2.id;
+------+--------+------+-------+
| id | kemu | id | score |
+------+--------+------+-------+
| 2 | shuxue | 2 | 90 |
| 3 | yingyu | 3 | 100 |
| 1 | yuwen | NULL | NULL |
+------+--------+------+-------+
3 rows in set (0.00 sec)
3.right join
https://www.cndba.cn/hbhe0316/article/22210
https://www.cndba.cn/hbhe0316/article/22210
https://www.cndba.cn/hbhe0316/article/22210
https://www.cndba.cn/hbhe0316/article/22210
“右连接”,表1右连接表2,以右为主,表示以表2为主,关联查询表1的数据,查出表2所有数据以及表1和表2有交集的数据,如下:https://www.cndba.cn/hbhe0316/article/22210https://www.cndba.cn/hbhe0316/article/22210
mysql> select * from t2 left join t1 on t2.id=t1.id;
+------+-------+------+--------+
| id | score | id | kemu |
+------+-------+------+--------+
| 2 | 90 | 2 | shuxue |
| 3 | 100 | 3 | yingyu |
| 4 | 80 | NULL | NULL |
+------+-------+------+--------+
3 rows in set (0.00 sec)
4.join
join,其实就是“inner join”,为了简写才写成join,两个是表示一个的,内连接,表示以两个表的交集为主,查出来是两个表有交集的部分,其余没有关联就不额外显示出来,这个用的情况也是挺多的,如下
https://www.cndba.cn/hbhe0316/article/22210
https://www.cndba.cn/hbhe0316/article/22210
https://www.cndba.cn/hbhe0316/article/22210
mysql> select * from t1 join t2 on t1.id=t2.id;
+------+--------+------+-------+
| id | kemu | id | score |
+------+--------+------+-------+
| 2 | shuxue | 2 | 90 |
| 3 | yingyu | 3 | 100 |
+------+--------+------+-------+
2 rows in set (0.00 sec)
版权声明:本文为博主原创文章,未经博主允许不得转载。
MYSQL