php - Returning distinct values in either column X or Y in MySQL -


how select distinct values combination of 2 columns? creating threaded inbox, iphone sms system , want along lines of:

select distinct (senderid or recipientid - whichever value != $userid), name, body messages $userid = (either senderid, recipientid - whatever discovered first). 

sorry that's confusing, idea return latest message (regardless of whether message sent or received) create distinct threads in messaging system. 1 thread can exist between 2 users.

edit: here's code i'm using

// pull girls being followed $userid  $sql = "select * messages left join (     select distinct case when '$userid' != senderid      senderid else recipients     end otherid, users.username sendername, messages.body, messages.time      messages      messages.recipients = '$userid' or messages.senderid = '$userid' ) subq on users.id = subq.otherid  order subq.time"; 

mysql has case expression can try

select distinct case when $userid != senderid senderid                 else recipientid end someid /*senderid or recipientid - whichever value != $userid*/,                 name, body     messages $userid = senderid     or $userid = recipientid; 

select * messages left join (select distinct case when $userid != senderid senderid                     else recipientid end someid /*senderid or recipientid - whichever value != $userid*/,                     name, body                  messages              $userid = senderid              or $userid = recipientid) subq     on messages.userid = subq.someid; 

note haven't tested syntaxt in mysql - don't have instance work on ...but using column name someid shouldn't problem, since made query exists subquery of else.


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 -