MS SQL server 2005 学习笔记——外连接

在做一个练习的时候,遇到了一个外连接语法有关的问题,也弄了不少时间才搞明白。

(我是用Microsoft SQL server 2005 操作的。)

先建立一个数据库叫tupwkservice,然后建了两个表: Consumer、ConDing 。

dbo.Consumer:

 

dbo.ConDing:

 

按照书上的敲了下面一段代码:

--使用外连接查看客户基本信息及其订单状况。

--错误连接1

 

      据查阅无上面那种写法(或者是一种很老的写法吧)。

      外连接的表示方法为,在连接谓词的某一边加*号,外连接好比是在*号所在的表增加了一个万能行,该行全部由空值组成,它可以和另一边基本表所有不满足连接条件的记录进行连接。外连接符出现在连接条件的右边,称其为右外连接(有些数据库也用right outer join关键字);如果外连接符出现在连接条件的左边,称其为左外连接(有些数据库也用left outer join 关键字)。

 

--错误连接2

 

      所以要在数据库的属性里改一下:右击数据库tupwkservice的属性选项→选项→兼容级别→SQL Server 2000(80),然后点击“确定”保存。然后就可以照下面的代码敲入,实现外连接查询了。

下面的为正确代码:

--左连接(经过修改兼容级别后,错误连接2也就变成正确的了)

Select Consumer.Consumer_ID,Consumer.Consumer_Name,Consumer.Consumer_Email,

Consumer.Consumer_Address,ConDing.ConDing_ID,ConDing.ConDing_Product,ConDing.ConDing_Number
From Consumer,ConDing

Where Consumer.Consumer_Name*=ConDing.ConDing_Name;

--右连接

Select Consumer.Consumer_ID,Consumer.Consumer_Name,Consumer.Consumer_Email,Consumer.Consumer_Address,

ConDing.ConDing_ID,ConDing.ConDing_Product,ConDing.ConDing_Number
From Consumer,ConDing

Where Consumer.Consumer_Name=*ConDing.ConDing_Name;

 

 

原文地址:https://www.cnblogs.com/ling3blog/p/1695247.html