日期:2014-05-18  浏览次数:20604 次

asp中的SQL查询,Left Join无效的奇怪问题
例如:

A表
--------------------
ID NAME
1 A1
2 A2

B表
--------------------
ID Grade
1 a

查询: Select A.*,B.Grade from A Left Join B on A.Id=B.Id
在查询分析器中返回:
ID NAME GRADE
1 A1 a
2 A2 NULL

但在asp中却返回:
ID NAME GRADE
1 A1 a

不知为何?程序没有变动过,以前可以用的,用了很久一段时间.换服务器了之后就成这样子了.
服务器配置SQL 2005

------解决方案--------------------
改:
Select A.*,isnull(B.Grade,'') as Grade 
from A 
Left Join B on A.Id=B.Id
------解决方案--------------------
SQL code
Select A.*,isnull(B.Grade,0) from A Left Join B on A.Id=B.Id

------解决方案--------------------
这倒不清楚了,ado出来时sql2005还不存在,不知道是否存在些什么问题。
------解决方案--------------------
Select A.*,B.Grade from A Left Join B on A.Id=B.Id 

语句没错.

实在不行,改一下.

Select A.*,B.Grade from A inner Join B on A.Id=B.Id 
union all
Select A.*, null from A where a.id not in (select id from B)