簡體   English   中英

從MySQL返回最新消息?

[英]Returning the most recent messages from MySQL?

我需要在以下查詢中添加一個聯接,該聯接將messages_message表聯接到messages_threads表,並從messages_messages中的最新行返回“ body”和“ time”字段,其中messages_message.threadid = messages_threads.id。

抱歉,這真令人困惑,我不知道該怎么說。 這是我當前的查詢-正確提取除“正文”和“時間”字段以外的所有內容。

SELECT 
    messages_threads.id AS threadid, messages_threads.name AS recipientsname, 
    senderid, username AS sendername, pictures.url AS senderpicture
FROM 
    messages_recipients
    JOIN messages_threads 
        ON messages_threads.id = messages_recipients.threadid
    JOIN users 
        ON users.id = messages_threads.senderid
    JOIN pictures 
        ON messages_threads.senderid = pictures.userid 
        AND pictures.profile = 1
WHERE messages_recipients.userid = $userid

您可以添加messages_message表的子查詢,該查詢將為每個線程返回1行。 例如:

SELECT 
    messages_threads.id AS threadid, messages_threads.name AS recipientsname, 
    senderid, username AS sendername, pictures.url AS senderpicture
FROM 
    messages_recipients
    JOIN messages_threads ON messages_threads.id = messages_recipients.threadid
    JOIN users ON users.id = messages_threads.senderid
    JOIN pictures ON messages_threads.senderid = pictures.userid AND pictures.profile = 1
    JOIN ( SELECT threadid, MAX(id) AS postid FROM messages_message GROUP BY threadid ) t ON message_threads.id = t.threadid
    JOIN messages_message ON t.threadid = messages_message.threadid AND t.postid = messages_message.id
WHERE messages_recipients.userid = $userid

我認為您也需要按身體和時間分組...或者您還可以指定您的查詢..

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM