join 使用来连接多表字段进行查询,分为3中情况:inner join, left join, right join
- inner join: 取得两个表中匹配的数据
- left join: 取得左表(left join左边的表)中的全部数据和右表的匹配数据
- right join: 取得右表中的全部数据和左表的匹配数据
这样的话 left join 和 right join可能会出现null字段, 因为在左(右)表中的全部数据不一定在右表(左表)都右匹配,这样没有匹配到的话就会出现null字段
当然使用inner join不会出现上述情况, 直接进行的就是全部匹配
去掉null字段可以在后面在加一个where条件进行判断
- select test1.t2.name as ‘名字’, test1.t2.sex as ‘性别’, test1.t3.age as ‘年龄’ from test1.t2 left join test1.t3 on test1.t2.name = test1.t3.name where test1.t2.name = test1.t3.name;
+——–+——–+——–+
| 名字 | 性别 | 年龄 |
+——–+——–+——–+
| 赵 | 男 | 23 |
+——–+——–+——–+select test1.t2.name as ‘名字’, test1.t2.sex as ‘性别’, test1.t3.age as ‘年龄’ from test1.t2 left join test1.t3 on test1.t2.name = test1.t3.name;
- +——–+——–+——–+
| 名字 | 性别 | 年龄 |
+——–+——–+——–+
| 赵 | 男 | 23 |
| Sanny | 女 | NULL |
+——–+——–+——–+