4 回答
TA贡献1807条经验 获得超9个赞
举个例子:
现在需要统计超市每个商品买了多少。
相关的表有两个:
商品表(商品编号,商品名称)
销售表(商品编号,销售数量,月份)
如果直接下面的语句查询,就会遗漏没有销售过的商品。
1 2 3 | Select 商品名称,Sum(销售数量) From 商品表,销售表 Where 商品表.商品编号=销售表.商品编号 |
这时就需要使用左外连接或者右外连接
1 2 3 4 5 | Select 商品名称,isnull(Sum(销售数量),0) as 销售数量 From 商品表 Left Join 销售表 On 商品表.商品编号=销售表.商品编号 --SQL SERVER代码 --没有销售过的商品,使用Sum(销售数量)会显示为null,用isnull将null值转换成0 |
TA贡献1844条经验 获得超8个赞
内连接:取的两个表的(有能连接的字段),的交集,即字段相同的。利用内连接可获取两表的公共部分的记录,
select * from A,B where A.Aid=B.Bnameid
与 Select * from A JOIN B ON A.Aid=B.Bnameid的运行结果是一样的。
外连接:左右连接。
外连接分为两种,一种是左连接(Left JOIN)和右连接(Right JOIN)
(1)左连接(Left JOIN):即图3公共部分记录集C+表A记录集A1。语句如下: select * from A Left JOIN B ON A.Aid=B.Bnameid A的字段全有,查询出来在结果集的左边。
(2)右连接(Right JOIN):即图3公共部分记录集C+表B记录集B1。语句如下:select * from A Right JOIN B ON A.Aid=B.Bnameid
- 4 回答
- 0 关注
- 1216 浏览
添加回答
举报