0

MY CODE (Im using MS Access 2000 with JET Database engine)

SELECT Members.First_Name + ' ' + Members.Last_Name AS Member,
       iif(NULL,Friends.My_E_Mail, Friends.Friend_E_Mail) AS E_Mail, 
       Members.First_Name AS Name 
FROM ((Members 
       LEFT OUTER JOIN Friends 
            ON Members.E_Mail = Friends.My_E_Mail 
            AND Friends.Friend_E_Mail = ?) 
       LEFT OUTER JOIN Friends Friends_1 
            ON Members.E_Mail = Friends.Friend_E_Mail 
            AND Friends.My_E_Mail = ?)

My Tables Members(all VARCHAR) SOME DATA First_Name Alester Jude Carl Jones Last_Name A B C J

FRIENDS(ALL VARCHAR)
My_E_Mail               Alester@lam.com Alester@lam.com  Alester@lam.com
Friend_E_Mail           jude@lam.com    carl@lam.com   jones@lam.com

***NOTE Friends Table ALLOWS duplicates so jude can be on my_E_Mail but CAN NOT add alester because they are already friends.

Desired Output if ("?" in above query is: jones@lam.com)

+--------------+-----------+------------+
|Member        |E_Mail     |  Name      |
+---------------------------------------+
 Alester A   Alester@lam.com  Alester

Desired Output if("?" in above query is: Alester@lam.com)

+--------------+-----------+------------+
|Member        |E_Mail     |  Name      |
+---------------------------------------+
 Jude B        jude@lam.com  Jude
 carl C        carl@lam.com  Carl
 Jones J       jones@lam.com Jones

PS the "?" are query string parameters that im passing in the "?" i know that works fine.

MY QUESTION IS : I keep getting this error "Join Expression not Supported"

Is there a workaround query I can use without using a stored procedure or using multiple queries since this needs to be ONE SINGLE QUERY!?

Mike Sherrill 'Cat Recall'
  • 91,602
  • 17
  • 122
  • 185

1 Answers1

0

This expression doesn't look right.

iif(NULL,Friends.My_E_Mail, Friends.Friend_E_Mail)

You might mean

iif(isnull(Friends.My_E_Mail), Friends.Friend_E_Mail, Friends.My_E_Mail)

You might not.

I think your join conditions are fine. You can test them by replacing the "?" with literal strings.

   LEFT OUTER JOIN Friends 
        ON Members.E_Mail = Friends.My_E_Mail 
        AND Friends.Friend_E_Mail = 'jones@lam.com') 
   LEFT OUTER JOIN Friends Friends_1 
        ON Members.E_Mail = Friends.Friend_E_Mail 
        AND Friends.My_E_Mail = 'jones@lam.com')

Then run the query manually.

Mike Sherrill 'Cat Recall'
  • 91,602
  • 17
  • 122
  • 185