Board index » delphi » Jet 4.0 vs others - left outer join

Jet 4.0 vs others - left outer join


2004-06-23 04:24:38 PM
delphi275
Hi,
The following code works fine with Sybase' SQL Anywhere and DB2/400. I
would like my little app to run against MS Access for stand-alone clients
but I can not get this select to work.
Select
i.*, c.*, p.*, m.imdesc, s.isdesc
from id001p i
left outer join id002p p on (p.idid = i.idid)
left outer join id003p c on (c.idid = i.idid)
left outer join id900p s on (s.iscode = i.iscode)
left outer join id902p m on (m.imcode = p.imcode)
where i.idid = :idid
The error is
'Syntax error (missing operator) in query expression '(p.idid = i.idid)'
'left outer join id003p c on (c.idid = i.idid)'
'left outer join id900p s on (s.iscode = i.iscode)'
'left outer join id902p m on (m.imcode = p.imcode)''
The help I find says to remove the 'outer' keyword but this seems to make no
difference.
Any ideas?
Delphi 7 Professional, Jet 4.0.
Thanks
David
The
 
 

Re:Jet 4.0 vs others - left outer join

To make it work you should put each join in () like this:
Select
i.*, c.*, p.*, m.imdesc, s.isdesc
from (((id001p i
left outer join id002p p on (p.idid = i.idid))
left outer join id003p c on (c.idid = i.idid))
left outer join id900p s on (s.iscode = i.iscode))
left outer join id902p m on (m.imcode = p.imcode)
where i.idid = :idid
"David Freeman" <XXXX@XXXXX.COM>сообщи?сообщила ?новостях следующе?
Quote
Hi,

The following code works fine with Sybase' SQL Anywhere and DB2/400. I
would like my little app to run against MS Access for stand-alone clients
but I can not get this select to work.

Select
i.*, c.*, p.*, m.imdesc, s.isdesc
from id001p i
left outer join id002p p on (p.idid = i.idid)
left outer join id003p c on (c.idid = i.idid)
left outer join id900p s on (s.iscode = i.iscode)
left outer join id902p m on (m.imcode = p.imcode)
where i.idid = :idid

The error is
'Syntax error (missing operator) in query expression '(p.idid = i.idid)'
'left outer join id003p c on (c.idid = i.idid)'
'left outer join id900p s on (s.iscode = i.iscode)'
'left outer join id902p m on (m.imcode = p.imcode)''

The help I find says to remove the 'outer' keyword but this seems to make
no
difference.

Any ideas?

Delphi 7 Professional, Jet 4.0.

Thanks
David

The


 

Re:Jet 4.0 vs others - left outer join

Yes, that did the trick! Somewhat bizarre!
Thanks
David