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=