MySql连接表

MySql连接表,mysql,phpmyadmin,Mysql,Phpmyadmin,我有三张桌子, jos_messages=>“message_id(PK)”、“message”、“from_user_id”、“touser id” jos_message_thread=>“thread_id PK”,“message_id FK”,“from_user_id”,“to_user_id” jos_users=>“用户id(FK)”、“名字”、“化身” 我需要使用此表进行查询,以在一个结果中返回数据,数据为: 最后插入的消息(jos_消息)、消息发送者的名字和化身(jos_用户

我有三张桌子,
jos_messages=>“message_id(PK)”、“message”、“from_user_id”、“touser id”

jos_message_thread=>“thread_id PK”,“message_id FK”,“from_user_id”,“to_user_id”

jos_users=>“用户id(FK)”、“名字”、“化身”

我需要使用此表进行查询,以在一个结果中返回数据,数据为: 最后插入的消息(jos_消息)、消息发送者的名字和化身(jos_用户) 结果应该是这样的:

信息:“嗨,这是最后一个插入的消息”

名字:“莱迪夫”

阿凡达:“http://a.com/a.png"

我现在看到的是这个查询,但问题是,返回的消息不是插入的最后一条消息

SELECT jmt.from_user_id, jm.message, ju.firstname, ju.avatar
FROM jos_messages_thread AS jmt
LEFT JOIN jos_messages AS jm ON jm.message_id = jmt.message_id
LEFT JOIN jos_comprofiler AS ju ON ju.user_id =     jmt.from_user_id
WHERE jmt.to_user_id ='$user_id'
AND jmt.thread_owner ='$user_id'
GROUP BY jmt.from_user_id

有没有一种方法可以在左边的连接查询中间命令JMMaseQueId?使其类似于:

LEFT JOIN jos_messages AS jm ON jm.message_id = (LAST INSERTED) jmt.message_id

谢谢!!顺便说一下,我的英语不是很好,如果我的问题不太清楚,我很抱歉。

你不需要在连接的中间插入顺序,即使有办法这样做。只需在整个查询结束时使用
ORDER BY jm.message_id DESC
,并使用
LIMIT 1
将结果限制到第一行。

消息id是否自动递增??如果是这样,那么最后插入的消息将是具有最大id@Hunter麦克米伦是的。这正是我所期望的,但它没有发生。您还需要包含一个
orderby
语句。如果您执行
按消息订购\u id DESC LIMIT 1
,将为您提供最大的id
LEFT JOIN jos_messages AS jm ON jm.message_id = (Select jthread.message_id from jos_messages_thread Order By jthread.message_id desc Limit 1)