MSSQL联合查询提升效率:实践与思考(mssql联合查询效率)
大家在使用SQL语句查询数据的时候,经常会碰见联合查询语句,也就是在一定场景下使用多个查询语句,结合他们的处理结果,更快速更有效率地查询出想要的数据,称之为联合查询。
MSSQL一般支持五种联合查询,即INNER JOIN、FULL JOIN、LEFT JOIN、RIGHT JOIN、CROSS JOIN,下面就来具体介绍他们的查询特点:
INNER JOIN 默认联合查询,只查找出两个表中相同列值的结果(两个表存在联系)。
“`sql
select *from student as S
inner join school as SC
on S.schoolID = SC.schoolID
FULL JOIN 联合查询,返回两个表中所有结果,即查找出相同列值和不同列值结果,两个表可以不存在联系。
```sqlselect *from student as S
full join school as SCon S.schoolID = SC.schoolID
LEFT JOIN 联合查询,左表OLS数据从左到右依次做左外连接,右表RHS只要有出现,就取值。
“`sql
select *from student as S
left join school as SC
on S.schoolID = SC.schoolID
RIGHT JOIN 联合查询,右表RHS数据从右到左依次做右外连接,另外左表OLS只要有出现,就取值。
```sqlselect *from student as S
right join school as SCon S.schoolID = SC.schoolID
CROSS JOIN 又称全表连接,无视两个表之间的连接条件,把左表OLS和右表RHS的所有行结果结合,得到一个虚拟表,如果不加任何条件,那么结果会是左右表乘积(也就是行数和列数乘积)。
“`sql
select *from student as S
cross join school as SC
以上就是MSSQL联合查询实例,有时不同类型的查询语句搭配起来使用,可以更快速更有效率地运行,但在实际中还是要根据不同场景选择合适的查询,才能更好的利用MSSQL查询数据库。