-1

我想将 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 列出分组并在消息中显示最新

我的英语太差了抱歉。请帮帮我

所以阿里发了 50 条帖子,约翰发了 20 条消息,迈克发了 5 条消息

我想写到这样的页面: Ali 的最新消息和 ali 的图片 John 的最新消息和他的图片 Mike 的最新消息和他的图片

按最新消息排序并按 xid 分组(如:44asd32asd12)

理解?

4

1 回答 1

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;

希望这可以帮助

于 2013-07-04T21:01:49.787 回答