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

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 -