左连接和右连接算是比较简单的概念,但是有时候突然会忘记,有时候想起概念,但是没有实践结果可供观看,感觉也不深刻,故此记录一下。
左连接和右连接简单的说:左连接只影响右表,右连接只影响左表。
mysql> select * from stu1;
+------+----------+
| num | name |
+------+----------+
| 1 | zhangsan |
| 2 | lisi |
+------+----------+
2 rows in set (0.00 sec)
mysql> select * from stu2;
+------+---------+
| num | name |
+------+---------+
| 1 | wangwu |
| 3 | zhaoliu |
+------+---------+
2 rows in set (0.00 sec)
mysql> select * from stu1 left join stu2 on (stu1.num=stu2.num);
+------+----------+------+--------+
| num | name | num | name |
+------+----------+------+--------+
| 1 | zhangsan | 1 | wangwu |
| 2 | lisi | NULL | NULL |
+------+----------+------+--------+
2 rows in set (0.00 sec)
mysql> select * from stu1 right join stu2 on (stu1.num=stu2.num);
+------+----------+------+---------+
| num | name | num | name |
+------+----------+------+---------+
| 1 | zhangsan | 1 | wangwu |
| NULL | NULL | 3 | zhaoliu |
+------+----------+------+---------+
2 rows in set (0.00 sec)
stu1左连接stu2,左连接只影响右表(这里右表是stu2),则左表中的数据全部返回,右表中的数据只返回满足条件的。
stu1右连接stu2,右连接只影响左表(这里的左表是stu1),则右表中的数据全部返回,左表中的数据只返回满足条件的。
实验结果一目了然。