MySql、选择、左加入、分组依据、限制。。而我';我要下订单吗?

MySql、选择、左加入、分组依据、限制。。而我';我要下订单吗?,mysql,database,sql-order-by,Mysql,Database,Sql Order By,我有一个非常混乱的quesry字符串,此时显示如下: SELECT SQL_CALC_FOUND_ROWS m.*, ( SELECT count(1) FROM votazioni_messaggi v WHERE v.idMeggaggio=m.ID ) AS Votato, AVG(voto) AS votazioneMedia, n.nomeUtente, FROM messages m LEFT JOIN votazioni_messaggi v ON v.idMessa

我有一个非常混乱的quesry字符串,此时显示如下:

SELECT SQL_CALC_FOUND_ROWS m.*,
(
  SELECT count(1) FROM votazioni_messaggi v
  WHERE v.idMeggaggio=m.ID
) AS Votato,

AVG(voto) AS votazioneMedia, 
n.nomeUtente,
FROM messages m 
LEFT JOIN votazioni_messaggi v ON v.idMessaggio = m.ID 
LEFT JOIN utenti n ON a.idUtente=n.ID
WHERE n.idUser='$idUser' AND m.Genre IN('animal', 'love') 
GROUP BY m.ID,  
LIMIT $partenza, 20
换句话说,我每次都要选择20条类似“动物”和“爱”的信息,每一条都要检索用户信息并计算平均投票数。计数和分组我可以知道用户是否已经对消息进行了投票

现在,我必须按插入时间为ORDER消息设置最后一个子句(我在messages.InsertionTime表中保存了此数据)

该子句应该是按消息排序的。InsertionTime但我如何知道要将其放置在什么位置?

尝试以下方法:

SELECT SQL_CALC_FOUND_ROWS m.*,
       (SELECT count(1) FROM votazioni_messaggi v
        WHERE v.idMeggaggio=m.ID
       ) AS Votato,
       AVG(voto) AS votazioneMedia, 
       n.nomeUtente,
FROM messages m 
LEFT JOIN votazioni_messaggi v ON v.idMessaggio = m.ID 
LEFT JOIN utenti n ON a.idUtente=n.ID
WHERE n.idUser='$idUser' AND m.Genre IN ('animal', 'love') 
GROUP BY m.ID
ORDER BY m.InsertionTime 
LIMIT $partenza, 20;

你至少有两个问题。一个是组末尾的逗号。另一个是使用表名而不是表别名。

限制之前,在
分组依据之后
@Aldi:已经尝试过了,但是它给我语法错误或访问冲突:1064您需要删除
分组依据m.ID
之后的逗号,并在那里插入您的
订单依据。我已经修复了你的代码格式;发布被双引号包围的SQL会破坏它。请不要这样做。:-)您可以在发布代码时预览代码,以确保格式正确(就在您键入/粘贴代码的文本区域下方)。您可以复制并粘贴完整的错误消息吗?Aldi,问题是分组方式后的逗号,这是一个非常常见的错误:(