左连接和右连接算是比较简单的概念,但是有时候突然会忘记,有时候想起概念,但是没有实践结果可供观看,感觉也不深刻,故此记录一下。
左连接和右连接简单的说:左连接where只影响右表,右连接where只影响左表。
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,左连接where只影响右表(这里右表是stu2),则左表中的数据全部返回,右表中的数据只返回满足where条件的。
stu1右连接stu2,右连接where只影响左表(这里的左表是stu1),则右表中的数据全部返回,左表中的数据只返回满足where条件的。
实验结果一目了然。