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

Left join的问题,在线急等结帖!!!!
我用的是C++Builder开发工具
我想实现如下的SQL语句的功能
AnsiString   strSql;
strSql= "select   *   from ";
strSql+= "   (select   *   from ";
strSql+= "   (select   *   from   WxhkH   H ";
strSql+= "   left   join   KhsqH   S   on   H.SqNo   =   S.SqNo)   A ";
strSql+= "   left   join   KehuInfoH   K   on   A.KehuCode   =   K.KhCode ";
strSql+= "   left   join   RenwuWxD   R   on   A.SqNo   =   R.SqNo)   B ";
strSql+= "   left   join   WxpfH   X   On   B.WxNo=X.WxNo ";

一共是4个表:   WxhkH,KhsqH,WxpfH,RenwuWxD.
表字段如下
WxhkH:   Id,SqNo,...   维修人员服务回馈单表
KhsqH:   Id,SqNo,KhCode....   客户申请服务单表
WxpfH:   Id,WxNo,Fwry....   维修派发记录单表
RenwuWxD:   Id,WxNo,SqNo....   维修派发记录的任务列表
其中:WxpfH和RenwuWxD是主细表的关系


------解决方案--------------------
打开你的数据库,添加相关的表,生成视图.然后查看一下结果集是否是你想要的结果. COPY视图自动生成的SQL,就是你想要的.

:)
------解决方案--------------------
如果是Access数据库:

多表或查询关联时,没关联一层,都要加一对()。

如下:

select *
from (((A left join B on A.id=B.id)
left join C on A.ID=C.id)
left join D on A.id=D.id)


Access使用的是Jet-SQL,SQL Server使用的是T-SQL,两者用法上相差很大。


JET SQL 帮助(jet4 access2000)下载地址

http://www.access911.net/index.asp?board=8&recordid=75FAB71E&tt=