我有一个非常混乱的问题字符串,此时此刻如下所示:
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 但是我怎么知道我要放置它的确切点?
答案 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
末尾的逗号。另一个是使用表名而不是表别名。