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

how to build hyperlink for query string in php -

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

queue - mq_receive: message too long -