学生student表:
![](https://img.haomeiwen.com/i5502608/d1eacbc76b9f1f0d.png)
课程course表:
![](https://img.haomeiwen.com/i5502608/91361799d5e4ae12.png)
交叉连接:
select * from student,course;
结果为两张表的笛卡尔积:
![](https://img.haomeiwen.com/i5502608/d80ab77bb1363502.png)
![](https://img.haomeiwen.com/i5502608/5ccd853f325f0035.png)
内连接(inner join ,inner 可以省略)
- 显示内连接
SELECT * FROM A INNER JOIN B ON 条件;
- 隐示内连接
SELECT * FROM A,B WHERE 条件;
显示内连接和隐示内连接获得的查询结果是一样的,都是A表和B表的交集(例:A.id = B.id),但是只能查到有关系的信息,如果A表的一条数据的与B表关联的字段没有对应的信息(如:A.id = null),即:这条数据在B表中没有对应的信息,则无法获得。
外连接(outer join,outer可以省略)
- 左外链接(left outer join,outer可以省略)
SELECT * FROM A LEFT OUTER JOIN B ON 条件;
左外连接获得的查询结果是左边的表A的全部信息和A,B两张表的交集,左边A表的全部包含A表中在B表中没有对应关系的信息。
- 右外连接(right outer join,outer可以省略)
SELECT * FROM A RIGHT OUTER JOIN B ON 条件;
右外连接获得的查询结果是右边的表B的全部信息和A,B两张表的交集,右边B表的全部包含B表中在A表中没有对应关系的信息。
网友评论