一个简单的left outer join 问题,请高手指点!!!(100分)

  • 主题发起人 主题发起人 gzwhua
  • 开始时间 开始时间
G

gzwhua

Unregistered / Unconfirmed
GUEST, unregistred user!
本人有一程序想从SQL SERVER 转成ACCESS数据库,有一条判断用户的SQL在SQL SERVER可
正常运行,但在ACCESS却提示出错,SQL语句如下:
ADOQueryRight.SQL.Text := select a.* from systemmodel b left outer join
systemright a on a.modelid=b.modelid and a.RoleID=1

但将sql语句后的and a.RoleID=1改为Where a.RoleID=1能运行在ACCESS数据库,但返回值
又不正确,请那位朋友出手相助!!
 
把表的结构看看
 
SystemModel表结构
//========================================
ModelID int 4 0
ModelNO int 4 1
ModelForm varchar 40 1
ModelName varchar 40 1
TSelect bit 1 1
TInsert bit 1 1
TDelete bit 1 1
TMondify bit 1 1
TPrint bit 1 1
TAudit bit 1 1

SystemRight表结构
//========================================
ID int 4 0
RoleID int 4 0
ModelID int 4 0
RoleRight varchar 10 1
InputTime datetime 8 1
 
select a.* from systemmodel b left outer join
systemright a on a.modelid=b.modelid where a.RoleID=1
^^^^^^not and
 
你结果怎么个不正确?
 
用下面的试试
ADOQueryRight.SQL.Text := select a.* from
systemmodel b left outer join (select * from systemright where
RoleID=1) a on a.modelid=b.modelid
 
行不行?
说句话吧!
 
我都用left join ,和left outer join有什么不同吗
 
to:ugvanxk
sql server和access的解释不一样。
查以前的答案吧!
 
谢谢,我已利用另一种方式解决了
 
哪道我的方法不行?
解决就发分吧,等着分急用呢(:
 
后退
顶部