MYSQL内部联接、分组依据和订单依据使用

MYSQL内部联接、分组依据和订单依据使用,mysql,Mysql,我想要将mysql数据库中的数据与sql请求合并 这是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

我想要将mysql数据库中的数据与sql请求合并

这是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
id:2
nickname : aishe
img : aishe.jpg
members.tbl中的第二个记录

id : 1
nickname  : ali
img : ali.jpg
id:2
nickname : aishe
img : aishe.jpg
我希望列表组由xid和最新显示的消息

我的英语很差,对不起。 请帮帮我,伙计们

于是阿里发了50条短信 约翰发了20条短信 还有迈克5条留言

我要写到第页 比如: 阿里的最新消息和阿里的照片 约翰的最新消息和他的照片 迈克的最新消息和他的照片

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


理解?

如果我理解正确,您希望显示每个用户发送的消息,或者您希望显示每个用户发送的最后一条消息

如果要显示每个用户的消息,可以使用以下查询:

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;

希望这有帮助

不必为你的英语道歉,但如果你提供示例数据(表格形式),然后发布你希望从示例数据中得到的结果,可能会有所帮助像这条最新消息一样,先来谢谢你的提醒,但我犯了这个错误“字段列表中的未知列‘昵称’”@baraka你能把我加入skype吗?我一定需要help@CumhurYrdkl你具体需要什么?您想要的输出是什么?给出错误:您的SQL语法有错误;检查与您的MySQL服务器版本对应的手册,以了解使用near'.nickname=mesajlar.gonderici内部连接的正确语法(在第6行中选择gonderici,max(id')发送者:gonderici,消息:mesajlar