sqlserver连接查询如何使用?

2025-10-23 12:42:51

1、left join 查询以左表为基准进行查询,比如查询订单对应的产品信息

select A.id ,A.orderno,B.name, B.price 

from orders A

left join product B ON A.productid=B.id

以上查询就是以orders表为基准进行查询,以下为输出结果,可以看到所连接的表(product)中没有的值会以null填充

sqlserver连接查询如何使用?

1、和left join相反,在使用right join进行连接查询时,是以右侧表为基准进行查询,左没有的会以null填充 ,例如我们在product表中添加一行记录

insert into product

select 11,'测试产品',32

这个产品在orders表里面是没有的

sqlserver连接查询如何使用?

2、再在查询分析器中输入以下语句

select A.id ,A.orderno,B.name, B.price 

from orders A

right join product B ON A.productid=B.id

这样就可以看到我们查询的结果以右侧表为准,左表没有的就用null填充

sqlserver连接查询如何使用?

1、inner join是内连接,在使用inner join 时,不管是左表也好还是右表也好,只要他连不上就把他踢出去,类似于数学中的求交集把,例如

select A.id ,A.orderno,B.name, B.price 

from orders A

inner join product B ON A.productid=B.id

以下为输出结果,只查询有匹配的值,所以使用inner join时可能会丢掉数据

sqlserver连接查询如何使用?

1、full join 为全连接查询,其综合了left join 和right join的特点,只要没有匹配行就用null填充,例如

select A.id ,A.orderno,B.name, B.price 

from orders A

full join product B ON A.productid=B.id

其输出结果如下

sqlserver连接查询如何使用?

1、cross join 为交叉查询,使用交叉连接所产生的结果为所连接表的笛卡尔积,也就是返回行数=(table1的行数)*(table2的行数)*...*(tablen的行数),还是以以下语句为例,注意这里不需要on来指定连接条件

select A.id ,A.orderno,B.name, B.price 

from orders A

cross join product B 

以下为输出结果

注:交叉连接往往在求组合中用的比较多比如可以利用交叉连接计算出双色球的所有组合这样的

sqlserver连接查询如何使用?

声明:本网站引用、摘录或转载内容仅供网站访问者交流或参考,不代表本站立场,如存在版权或非法内容,请联系站长删除,联系邮箱:site.kefu@qq.com。
猜你喜欢