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
Post a Comment