2010-03-12 96 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” 你声明你的陈述?可能由于不按预期工作而对订单产生影响?