sql - Using a CASE result in a LEFT JOIN statement (MySQL) -


i'm trying left join table based on case result. basically, want check if i'm sender, , if i'm not want retrieve sender's name users database. if sender, want retrieve recipients name users table.

here's current database query, correctly pulls information users.username sendername display senders name:

select distinct case when $userid != senderid senderid else recipients end someid,                    users.username sendername,                  messages.body,                  messages.time  messages  left join users on users.id = messages.senderid  messages.recipients = $userid  or messages.senderid = $userid  order messages.time 

i'd change equivalent of following: left join users on users.id = someid someid defined in above case.

thanks!

select distinct case when $userid != senderid senderid else recipients end someid,                    case when $userid != senderid senders.senderid else receivers.recipients end somename                 messages.body,                  messages.time  messages  left join users senders on messages.senderid = senders.id left join users receivers on messages.recipients = receivers.id messages.recipients = $userid  or messages.senderid = $userid  order messages.time 

you may need tweak sql want, gist of join twice, use case statement pull item want appropriate table.


Comments

Popular posts from this blog

php - What is the difference between $_SERVER['PATH_INFO'] and $_SERVER['ORIG_PATH_INFO']? -

fortran - Function return type mismatch -

queue - mq_receive: message too long -