常用的多表连接查询
内连接
内连接(inner join):返回的是两个表中匹配连接条件的行的集合
1.等值内连接
2.非等值内连接
3.自然连接(natural join)
自然连接 :自动找相同字段相等的值作为连接条件,若没有相同字段,则相当于做笛卡尔积运算,即dept表中的每一行都有test表中的每一行去匹配,返回 行数*行数 条记录
外连接
1.左外连接(left join)
左外连接:左边(dept表)不符合连接条件的数据也会查询出来
2.右外连接(right join)
右外连接:右边(test表)不符合连接条件的数据也会查询出来
3.全连接(full join)
左边(dept表)和右边(test表)不符合连接条件的数据也会查询出来
交叉连接(cross join)
交叉连接就是笛卡尔积运算
自连接
即自身连接,也就是说把一张表看做两张表,分别取不同的别名,做连接查询
实例:假设在teacher表中(如下图),有老师的姓名tname列,导师编号mgrno列,要求查询每个老师的导师是谁:
可以把teacher表看做两张表,分别取不同的别名,sql语句如下:
select t1.tname,t2.tname 导师
from teacher t1 inner join teacher t2 on t1.mgrno=t2.tno
结果如下:
这就是自身连接。
如果对你有所帮助,请点赞评论一下,谢谢