举个例子吧。 假如有学生表和班级表两个表。 from:
http://zhidao.baidu.com/link?url=jq6gw7Uz1_pGo-85aOr6RJe7qLo3gbyd2I6bx1baYi3qJlJktPqjhQRpJx8_KxzxEd8lCKcPgMTdazG4X38lNa
学生表 t_student id studentname classid 1 张三 11 2 李四 12 3 王五 13 班级表 t_class classid classname 11 高三一班 12 高三二班 可以看到,班级表中并没有学生表中王五对应的班级的id 所以,王五是没有对应的班级的。 如果使用内连接 也就是select * from t_student s,t_class c where s.classid = c.classid 或者 select * from t_student s inner join t_class c on s.classid = c.classid 这样查询出来的结果是没有王五的。因为班级表中没有classid是13的班级。 结果应该是 id studentname classid classname 1 张三 11 高三一班 2 李四 12 高三二班 如果使用外连接, select * from t_student s left join t_class c on s.classid = c.classid 则可以查询到王五,但是查询结果中,班级对应的字段是空白的。 结果应该是 id studentname classid classname 1 张三 11 高三一班 2 李四 12 高三二班 3 王五 通过例子,可以简单的把内连接理解为取学生和班级的交集。两个都有的数据,才能查询出来。否则就查询不出来 而外连接(例如left join)则是查询出学生表的全部信息以及两个表的交集。