我有以下兩個表中進行選擇:MySQL的連接表使用和不使用GROUP BY
CREATE TABLE messages (
messageId INT,
threadId INT,
recipientUserId INT,
message TEXT
);
CREATE TABLE thread_recipients (
recipientUserId INT,
threadId INT
);
我想SELECT
特定用戶最近從消息表中的每個線程的消息。我還希望從thread_recipients表中獲取屬於所選線程一部分的所有其他用戶。
我想下面將工作:
SELECT MAX(m.messageId) AS maxMessageId, m.threadId, m.message
FROM messages AS m
RIGHT JOIN thread_recipients AS tr ON tr.threadId=m.threadId
WHERE m.recipientUserId='2'
GROUP BY m.threadId
然而,由於GROUP BY
只選擇,每一列都的threadId,不管是線的一部分的用戶數。是否可以在一個查詢中執行?
親切問候任何反應。
反引號是內嵌代碼。對於[代碼塊(http://meta.stackexchange.com/questions/22186/how-do-i-format-my-code-blocks),縮進帶有四個額外的空格的行。編輯器工具欄中的「{}」按鈕可以爲您做到這一點。單擊編輯器工具欄中的橙色問號以獲取更多信息和格式化提示。表結構應該用SQL語句顯示。由於您只是詢問SQL,因此無需將其作爲某些PHP代碼的一部分發布。 – outis
是什麼在'messages'和''thread_recipients'之間recipientUserId'的區別?他們如何使用? – outis
我不明白,也不能猜測,你的模式在這裏 – Bohemian