我有一個PHP腳本,它從數據庫中檢索消息,然後以收件箱樣式的方式顯示它們,每條消息一行。每條消息都是2個用戶之間對話的一部分。現在,問題是它會在對話中的每條消息的輸出中返回1條新消息。mySQL選擇 - 如何檢索只有1個結果和最高的數字ID?
如果有道理?下面是查詢代碼:
$sql_select_messages = $db->query(...);
凡的說法是下面的查詢字符串:
m.* FROM " . DB_PREFIX . "messaging m
選擇從包含MySQL的行中的數據:
SELECT m.admin_message, a.name, u.username AS sender_username,
m.* FROM " . DB_PREFIX . "messaging m
LEFT JOIN " . DB_PREFIX . "items a ON a.items_id=m.items_id
LEFT JOIN " . DB_PREFIX . "users u ON u.user_id=m.sender_id
WHERE m.receiver_id='" . $session->value('user_id') . "' AND m.receiver_deleted=0" .
(($page == 'summary') ? " AND m.is_read=0" : '') . "
ORDER BY " . $order_field . " " . $order_type . " LIMIT " . $start . ", " . $limit
的一部分列如
topic_id
和
message_id
我試圖做的是有上述的MySQL查詢只返回返回一(1)每topic_id結果(因爲可能會有幾個topic_id用相同的號碼),並結合,只有最新(最高號碼)的message_id。
所以基本上如果有:
================
topic_id | message_id
================
15 10
15 11
15 12
19 02
19 03
19 04
我只希望MySQL返回15/12和19/04。我將如何去做與上面的mySQL select查詢?
非常感謝你:)
你有w.name和r.name,但我沒有在這裏看到w或r表格。想一想,在這裏發佈裸露的SQL查詢示例會更好。 –
對不起,我刪除了那部分,忘了它上面。只是更新了它。現在應該是正確的:) – user2643870
'topic_id'和'message_id'是否在同一個表中,或者它們是否在JOIN中涉及的單獨表中? – Sammitch