定义: 外连接: 假设A和B表进行连接,使用外连接的话,AB两表中的一张表为主表,一张为副表,主要查询的主表中的数据,捎带查询一下副表,当副表中的数据没有和主表中的数据匹配上,副表自动模拟出Null与之匹配。
特点;主表中的数据无条件的全部显示出来
内连接: 假设A和B表进行连接,使用内连接的话,凡是A表和B表能够匹配上的记录查询出来,这就是内连接。 AB两表没有主次之分
分类: 左外连接: 表示左边的表为主表 右外连接: 表示右边的表为主表
左连接有右连接的写法,右连接又有左连接的写法。
CREATE TABLE `course` ( `ID` int NOT NULL AUTO_INCREMENT, `CouName` varchar(45) COLLATE utf8_bin DEFAULT '', PRIMARY KEY (`ID`) ) ENGINE=InnoDB AUTO_INCREMENT=8 DEFAULT CHARSET=utf8 COLLATE=utf8_bin CREATE TABLE `student` ( `ID` int NOT NULL AUTO_INCREMENT, `stuName` varchar(45) COLLATE utf8_bin DEFAULT '' COMMENT '姓名', `stuAge` int DEFAULT '0' COMMENT '年龄', `Cid` int DEFAULT '0' COMMENT '班级id', PRIMARY KEY (`ID`) ) ENGINE=InnoDB AUTO_INCREMENT=4 DEFAULT CHARSET=utf8 COLLATE=utf8_bin左外连接:(student 为主表)的左外连接
select b.stuName, c.CouName from book.student as b left join book.course as c on b.Cid = c.ID;右外连接:还是以student 为主表
select b.stuName, c.CouName from book.course as c right join book.student as b on b.Cid = c.ID;