group by - sql Left Join, max value -


hi every one,

i found similar subjects can't want.

i have got 3 tables:

message(rows: mid, content, sentdate)

received (rows: rid, membre, fk_re_message_id (foreign key: message.id))

group(rows: gid, microid,fk_gr_message_id (foreign key: message.id))

i last message of each group member id based on googling, last request have tried:


select *  message msg left join received rcd on msg.mid=rcd.fk_re_message_id  left join group grp on msg.mid=grp.fk_gr_message_id inner join (select mid, max( sentdate) lastdate message group mid) message on msg.mid=message.mid (rcd .membre)* 

this returning message in groups chosen membre.

please me?

you need fix last join condition:

select *  message msg left join      received rcd      on msg.mid=rcd.fk_re_message_id left join      "group" grp      on msg.mid=grp.fk_gr_message_id inner join      (select mid, max( sentdate) lastdate       message       group mid      ) message      on msg.mid = message.mid , msg.sentdate = message.lastdate (rcd .membre)*; 

if filtering data , have index on message(mid, sentdate), following should perform better;

select *  message msg left join      received rcd      on msg.mid = rcd.fk_re_message_id left join      "group" grp      on msg.mid = grp.fk_gr_message_id (rcd .membre)* ,       not exists (select 1                   message m2                   m2.mid = msg.mid , m2.sentdate > msg.sentdate                  ); 

Comments

Popular posts from this blog

android - Get AccessToken using signpost OAuth without opening a browser (Two legged Oauth) -

org.mockito.exceptions.misusing.InvalidUseOfMatchersException: mockito -

google shop client API returns 400 bad request error while adding an item -