Itamar Marom
Itamar Marom

Reputation: 525

Double Inner Join generates unexpected error

In my database I have three tables:

What I need is a query to which I input a user's id and I get all the private messages he has received. In addition, I also need to receive each message's sender UserName. For this I wrote the following query:

SELECT Users.*, PrivateMessages.*, MessageStatus.*
FROM PrivateMessages
INNER JOIN Users ON PrivateMessages.SenderID = Users.UserID
INNER JOIN MessageStatus ON PrivateMessages.MessageID = MessageStatus.MessageID
WHERE MessageStatus.ReceiverID=[@userid];

But for some reason when I try saving it in my Access database, I get the following error (translated to English by me, since my office is in a different language):

Syntax error (missing operator) at expression: "PrivateMessages.SenderID = Users.UserID INNER JOIN MessageStatus ON PrivateMessages.MessageID = MessageStatus.MessageI".

Any ideas what could cause this? Thanks.

Upvotes: 3

Views: 313

Answers (1)

Fionnuala
Fionnuala

Reputation: 91356

You need parentheses with MS Access:

SELECT Users.*, PrivateMessages.*, MessageStatus.*
FROM (PrivateMessages
INNER JOIN Users ON PrivateMessages.SenderID = Users.UserID)
INNER JOIN MessageStatus ON PrivateMessages.MessageID = MessageStatus.MessageID
WHERE MessageStatus.ReceiverID=[@userid];

Upvotes: 4

Related Questions