我有3個表,
jos_messages> 'MESSAGE_ID(PK)', '信息', 'from_user_id', '至用戶ID'MySQL的聯接表
jos_message_thread> 'THREAD_ID PK','MESSAGE_ID FK 」, 'from_user_id', 'to_user_id'
jos_users> 'USER_ID(FK)', '姓名', '化身'
我需要使與此表的查詢,以在一個結果返回數據,數據如下: 最後插入的消息(jos_messages),名字和消息發件人的頭像(jos_users) res ULT應該是這樣的:
消息: 「你好,這是最後插入的訊息話題」
姓: 「LEDIF」
化身: 「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
有沒有辦法在左連接查詢的中間命令jm.message_id?使它像這樣:
LEFT JOIN jos_messages AS jm ON jm.message_id = (LAST INSERTED) jmt.message_id
謝謝!順便說一句我不擅長英語,對不起,如果我的問題不是很清楚。
message_id是否自動遞增?如果是這樣,那麼最後插入的消息將是最大的ID –
@Hunter McMillen是的。這就是我期待的,但它沒有發生。 – janusbalatbat
然後你還需要包含一個'ORDER BY'語句。如果你做'ORDER BY message_id DESC LIMIT 1',會給你最大的ID –