MySQL查询 - 订单问题

时间:2010-03-12 22:34:26

标签: sql 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

3 个答案:

答案 0 :(得分:1)

像儿子一样

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 ASC 中, ASC 完全是语法上的,因为没有指定ASC / DESC的ORDER BY假定为ASC。

SELECT *
FROM TABLE
ORDER BY COL ASC

相同
SELECT *
FROM TABLE
ORDER BY COL

答案 1 :(得分:0)

表中是否有“已接收”列或具有某种时间戳的列?如果你这样做,你应该按此命令。

如果没有,请发布整个表格结构,以便我们更好地为您提供帮助。

答案 2 :(得分:0)

我不是sql专家,当您尝试ORDER BY子句时,是否通过messages.id或您在语句中声明的别名“pid”进行了排序?可能因预期不按预期对订单产生影响?