我有一个数据库,我将用户给出的答案(表'risposta_utente')存储到属于不同课程的问题(表'lezioni')。 我希望得到用户回答问题所获得的最大平均投票数。
ID_corso_sede_utente根据一门课程的课程唯一标识用户(因为有多个课程)。
SELECT titolo, MAX(voto) as voto_max
FROM (
SELECT AVG(voto_grezzo) as voto, ID_lezione
FROM risposta_utente
WHERE ID_corso_sede_utente = 260, risposta_utente.attivo = 1
GROUP BY ID_lezione
) AS voti
JOIN lezioni
ON lezioni.ID_lezione=voti.ID_lezione
第2行,第3行和第7行的Mysql信号错误(包围子查询的括号周围)。特别是它说:
答案 0 :(得分:1)
'where'子句应以“和”分隔,而不是逗号。
SELECT titolo, MAX(voto) as voto_max
FROM (
SELECT AVG(voto_grezzo) as voto, ID_lezione
FROM risposta_utente
WHERE ID_corso_sede_utente = 260 **and** risposta_utente.attivo = 1
GROUP BY ID_lezione
) AS voti
JOIN lezioni
ON lezioni.ID_lezione=voti.ID_lezione
还有一件事,如果你正在运行这是unix mysql控制台,那么添加tab会抛出错误。删除每行前的空格并尝试
SELECT titolo, MAX(voto) as voto_max
FROM (
SELECT AVG(voto_grezzo) as voto, ID_lezione
FROM risposta_utente
WHERE ID_corso_sede_utente = 260 **and** risposta_utente.attivo = 1
GROUP BY ID_lezione
) AS voti
JOIN lezioni
ON lezioni.ID_lezione=voti.ID_lezione
或尝试将其作为单行执行。
答案 1 :(得分:0)
where
命令应该是表达式。
WHERE ID_corso_sede_utente = 260 AND risposta_utente.attivo = 1
或
WHERE ID_corso_sede_utente = 260 OR risposta_utente.attivo = 1
基于您的业务逻辑