我想从mysql数据库中使用sql reqeust
合并数据此messages.tbl
id : 1
sender : ali
responder : aishe
message : hi,how are you aishe
xid : md5($sender.$responder)--for using group by xid
id : 1
sender : ali
responder : aishe
message : answer me aishe plase
xid : md5($sender.$responder)--for using group by xid
和这个members.tbl
id : 1
nickname : ali
img : ali.jpg
members.tbl中的第二条记录
id:2
nickname : aishe
img : aishe.jpg
我希望列表组按xid和最新的消息显示
我的英语很可怜。 请帮帮我们
所以ali发送了50条帖子消息 和约翰发布了20条消息 和迈克5条消息
我想要写到页面 喜欢 : 阿里的最新消息和阿里的照片 约翰的最新消息和他的照片 迈克的最新消息和他的照片
按最新消息排序,按xid排序(如:44asd32asd12)
理解?
答案 0 :(得分:0)
如果我理解正确,您希望显示每个用户发送的消息,或者您希望显示每个用户发送的最后一条消息。
如果要显示每个用户的消息,可以使用此查询:
select
members.*, -- Put the fields you want from table members (e.g. members.id, ...)
messages.* -- Put the fields you want from table messages (e.g. messages.message, ...)
from
members
inner join messages on members.nickname = messages.sender;
如果您想要每个用户发送的最后一条消息,您可以使用子查询来过滤数据:
select
members.*,
messages.*
from
members
inner join messages on members.nickname = messages.sender
inner join (
select sender, max(id) as maxId
from messages
group by sender
) as a on messages.id = a.maxId;
希望这有帮助