MySql,选择,左连接,分组依据,限制..以及我要放置ORDER的位置?

时间:2013-09-04 01:52:54

标签: mysql database sql-order-by

我有一个非常混乱的问题字符串,此时此刻如下所示:

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表中)。

该子句应该是 ORDER BY messages.InsertionTime 但是我怎么知道我要放置它的确切点?

1 个答案:

答案 0 :(得分:1)

试试这个:

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;

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

相关问题