dbTalk Databases Forums  

Problems with JOINs

comp.databases.ms-access comp.databases.ms-access


Discuss Problems with JOINs in the comp.databases.ms-access forum.



Reply
 
Thread Tools Display Modes
  #1  
Old   
Neil Gould
 
Posts: n/a

Default Problems with JOINs - 07-09-2010 , 11:04 AM






So simple, yet so puzzling. Searches have turned up nothing useful, so I
hope someone here can provide some insights.

This SQL statement:

cJEnq = "SELECT Mem_ID, Model, Year FROM Cars WHERE Cars.Make = 'MG' AND
Cars.Model = 'B' INNER JOIN Members ON Cars.Mem_ID = Members.Mem_ID"

Results in this error:

Microsoft OLE DB Provider for ODBC Drivers error '80040e14'

[Microsoft][ODBC Microsoft Access Driver] Syntax error (missing operator) in
query expression 'Cars.Make = 'MG' AND Cars.Model = 'B' INNER JOIN Members
ON Cars.Mem_ID = Members.Mem_ID'.

What is the missing operator or error that leads to the notion that there is
one (if the INNER JOIN clause is excluded, the query works as expected)?

--
TIA

Neil

Reply With Quote
  #2  
Old   
Douglas J. Steele
 
Posts: n/a

Default Re: Problems with JOINs - 07-09-2010 , 11:55 AM






The WHERE clause goes after the JOIN

cJEnq = "SELECT Mem_ID, Model, Year " & _
"FROM Cars INNER JOIN Members " & _
"ON Cars.Mem_ID = Members.Mem_ID "& _
"WHERE Cars.Make = 'MG' AND Cars.Model = 'B'"

--
Doug Steele, Microsoft Access MVP
http://www.AccessMVP.com/DJSteele
Co-author: Access 2010 Solutions, published by Wiley
(no e-mails, please!)

"Neil Gould" <neil (AT) myplaceofwork (DOT) com> wrote

Quote:
So simple, yet so puzzling. Searches have turned up nothing useful, so I
hope someone here can provide some insights.

This SQL statement:

cJEnq = "SELECT Mem_ID, Model, Year FROM Cars WHERE Cars.Make = 'MG' AND
Cars.Model = 'B' INNER JOIN Members ON Cars.Mem_ID = Members.Mem_ID"

Results in this error:

Microsoft OLE DB Provider for ODBC Drivers error '80040e14'

[Microsoft][ODBC Microsoft Access Driver] Syntax error (missing operator)
in
query expression 'Cars.Make = 'MG' AND Cars.Model = 'B' INNER JOIN Members
ON Cars.Mem_ID = Members.Mem_ID'.

What is the missing operator or error that leads to the notion that there
is
one (if the INNER JOIN clause is excluded, the query works as expected)?

--
TIA

Neil





Reply With Quote
  #3  
Old   
Bob Barrows
 
Posts: n/a

Default Re: Problems with JOINs - 07-09-2010 , 11:57 AM



Neil Gould wrote:
Quote:
So simple, yet so puzzling. Searches have turned up nothing useful,
so I hope someone here can provide some insights.

This SQL statement:

cJEnq = "SELECT Mem_ID, Model, Year FROM Cars WHERE Cars.Make = 'MG'
AND Cars.Model = 'B' INNER JOIN Members ON Cars.Mem_ID =
Members.Mem_ID"

Results in this error:

Microsoft OLE DB Provider for ODBC Drivers error '80040e14'

[Microsoft][ODBC Microsoft Access Driver] Syntax error (missing
operator) in query expression 'Cars.Make = 'MG' AND Cars.Model = 'B'
INNER JOIN Members ON Cars.Mem_ID = Members.Mem_ID'.

What is the missing operator or error that leads to the notion that
there is one (if the INNER JOIN clause is excluded, the query works
as expected)?
Errr .... you cannot have a WHERE clause before a join statement ...
The join is part of the FROM clause, and the WHERE clause has to come
after the FROM clause.

cJEnq = "SELECT Mem_ID, Model, Year FROM Cars " & _
" INNER JOIN Members ON Cars.Mem_ID =Members.Mem_ID" & _
" WHERE Cars.Make = 'MG' AND Cars.Model = 'B'"


--
HTH,
Bob Barrows

Reply With Quote
  #4  
Old   
Neil Gould
 
Posts: n/a

Default Re: Problems with JOINs - 07-09-2010 , 12:33 PM



Bob Barrows wrote:
Quote:
Errr .... you cannot have a WHERE clause before a join statement ...
The join is part of the FROM clause, and the WHERE clause has to come
after the FROM clause.

cJEnq = "SELECT Mem_ID, Model, Year FROM Cars " & _
" INNER JOIN Members ON Cars.Mem_ID =Members.Mem_ID" & _
" WHERE Cars.Make = 'MG' AND Cars.Model = 'B'"

Thanks, Bob!

--
Neil

Reply With Quote
  #5  
Old   
Neil Gould
 
Posts: n/a

Default Re: Problems with JOINs - 07-09-2010 , 12:33 PM



Douglas J. Steele wrote:
Quote:
The WHERE clause goes after the JOIN

cJEnq = "SELECT Mem_ID, Model, Year " & _
"FROM Cars INNER JOIN Members " & _
"ON Cars.Mem_ID = Members.Mem_ID "& _
"WHERE Cars.Make = 'MG' AND Cars.Model = 'B'"

Thanks, Douglas!

--
Neil

Reply With Quote
Reply




Thread Tools
Display Modes

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

vB code is On
Smilies are On
[IMG] code is On
HTML code is Off



Powered by vBulletin Version 3.5.3
Copyright ©2000 - 2012, Jelsoft Enterprises Ltd.