2010-03-12 165 views
1

我使用兩個表格來選擇用戶之間的消息。用於記錄消息的表格「消息」和用於檢查用戶數據的表格「成員」(它們是否被激活或被刪除)。MySQL查詢 - 訂單問題

此查詢正常工作。

我需要做的是列出收到的最後收到的消息順序。我在這個查詢的最後嘗試使用「ORDER BY messages.id DESC」,但它不起作用。 所有消息都是從第一次收到的。

這是MySQL連接表查詢,我使用:

sql = "SELECT DISTINCT messages.fromid, 
      messages.readed, 
      messages.fromid, 
      messages.toid , 
      members.id AS pid 
FROM   messages 
INNER JOIN members 
ON    members.id = messages.fromid 
WHERE   messages.toid    = ".$mid." 
AND    members.status    = 7 
AND    messages.kreaded   !='1' 
AND    messages.subject   != 'readed' 
GROUP BY  fromid" 

有沒有辦法做到這一點?

alt text http://www.freeimagehosting.net/uploads/e12a5b5437.jpg

回答

0

你有「收到」,在表中的列或帶有某種時間戳列?如果你這樣做,你應該以此命令。

如果不是,請張貼整個表格結構,以便我們能夠更好地幫助您。

+0

是的,有列「發送時間」,我試着用「ORDER BY messages.sendtime DESC」但沒有改變。 – Sergio 2010-03-12 22:47:23

+0

您是否也選擇了messages.sendtime?如果未在您的查詢中選中,則無法通過它進行排序。 – 2010-03-12 23:28:15

+0

是的,我做了,但沒有效果 – Sergio 2010-03-12 23:33:25

1

如何sonething像

SELECT DISTINCT messages.fromid, 
      messages.readed, 
      messages.fromid, 
      messages.toid , 
      members.id AS pid 
FROM   messages 
INNER JOIN members 
ON    members.id = messages.fromid 
WHERE   messages.toid    = ".$mid." 
AND    members.status    = 7 
AND    messages.kreaded   !='1' 
AND    messages.subject   != 'readed' 
ORDER BY messages.fromid ASC, 
      messages.id DESC 

OR

SELECT DISTINCT messages.fromid, 
      messages.readed, 
      messages.fromid, 
      messages.toid , 
      members.id AS pid 
FROM   messages 
INNER JOIN members 
ON    members.id = messages.fromid 
WHERE   messages.toid    = ".$mid." 
AND    members.status    = 7 
AND    messages.kreaded   !='1' 
AND    messages.subject   != 'readed' 
ORDER BY messages.fromid ASC, 
      messages.sendtime DESC 

messages.fromid ASCASC純粹是語法,因爲ORDER BY不指定ASC/DESC假定ASC。

SELECT * 
FROM TABLE 
ORDER BY COL ASC 

相同

SELECT * 
FROM TABLE 
ORDER BY COL 
+0

不是。我嘗試了這兩個。它總是列出頂部的第一條消息。 – Sergio 2010-03-12 22:54:35

+1

**你知道你在說什麼,幾乎沒有任何意義。**向我們展示一些輸入數據和預期的輸出,也許我們可以看看,然後...... – 2010-03-12 22:59:54

0

我不是SQL專家,由當你想你的ORDER BY子句中,你通過messages.id或別名命令 「PID」 你聲明你的陳述?可能由於不按預期工作而對訂單產生影響?