SQL: ERROR 1054 (42S22) having 子句中的未知列
SQL: ERROR 1054 (42S22) Unknown column in having clause
我在 Whosebug 中搜索了大约一个小时,但没有找到解决我的问题的方法。
select Schueler.Vorname, Schueler.Nachname
from Schueler, SchuelerLernt, Lehrer, Instrumente
group by Schueler.Snummer
having Schueler.Snummer = SchuelerLernt.Snummer and
SchuelerLernt.Lnummer = Lehrer.Lnummer and
SchuelerLernt.Ibezeichnung = Instrumente.Ibezeichnung and
count(Ibezeichnung) > 1;
当我使用命令源 test.sql 时,我收到此错误消息:
ERROR 1054 (42S22) Unknown column 'Schueler.Snummer' in 'having
clause'
该列存在,我不知道哪里出了问题。
有人能修好吗?
你可能想要:
select Schueler.Snummer, Schueler.Vorname, Schueler.Nachname
from Schueler
JOIN SchuelerLernt
ON Schueler.Snummer = SchuelerLernt.Snummer
JOIN Lehrer
ON SchuelerLernt.Lnummer = Lehrer.Lnummer
JOIN Instrumente
ON SchuelerLernt.Ibezeichnung = Instrumente.Ibezeichnung
group by Schueler.Snummer, Schueler.Vorname, Schueler.Nachname
having count(Ibezeichnung) > 1;
您应该使用 JOIN
语法而不是逗号语法。
您的 GROUP BY
子句应匹配 SELECT
子句或使用聚合函数。
编辑:
我不知道为什么不使用 JOIN
但如果你需要使用:
select Schueler.Snummer, Schueler.Vorname, Schueler.Nachname
from Schueler, SchuelerLernt, Lehrer, Instrumente
WHERE Schueler.Snummer = SchuelerLernt.Snummer
AND SchuelerLernt.Lnummer = Lehrer.Lnummer
AND SchuelerLernt.Ibezeichnung = Instrumente.Ibezeichnung
group by Schueler.Snummer, Schueler.Vorname, Schueler.Nachname
having count(Ibezeichnung) > 1;
我在 Whosebug 中搜索了大约一个小时,但没有找到解决我的问题的方法。
select Schueler.Vorname, Schueler.Nachname
from Schueler, SchuelerLernt, Lehrer, Instrumente
group by Schueler.Snummer
having Schueler.Snummer = SchuelerLernt.Snummer and
SchuelerLernt.Lnummer = Lehrer.Lnummer and
SchuelerLernt.Ibezeichnung = Instrumente.Ibezeichnung and
count(Ibezeichnung) > 1;
当我使用命令源 test.sql 时,我收到此错误消息:
ERROR 1054 (42S22) Unknown column 'Schueler.Snummer' in 'having clause'
该列存在,我不知道哪里出了问题。
有人能修好吗?
你可能想要:
select Schueler.Snummer, Schueler.Vorname, Schueler.Nachname
from Schueler
JOIN SchuelerLernt
ON Schueler.Snummer = SchuelerLernt.Snummer
JOIN Lehrer
ON SchuelerLernt.Lnummer = Lehrer.Lnummer
JOIN Instrumente
ON SchuelerLernt.Ibezeichnung = Instrumente.Ibezeichnung
group by Schueler.Snummer, Schueler.Vorname, Schueler.Nachname
having count(Ibezeichnung) > 1;
您应该使用 JOIN
语法而不是逗号语法。
您的 GROUP BY
子句应匹配 SELECT
子句或使用聚合函数。
编辑:
我不知道为什么不使用 JOIN
但如果你需要使用:
select Schueler.Snummer, Schueler.Vorname, Schueler.Nachname
from Schueler, SchuelerLernt, Lehrer, Instrumente
WHERE Schueler.Snummer = SchuelerLernt.Snummer
AND SchuelerLernt.Lnummer = Lehrer.Lnummer
AND SchuelerLernt.Ibezeichnung = Instrumente.Ibezeichnung
group by Schueler.Snummer, Schueler.Vorname, Schueler.Nachname
having count(Ibezeichnung) > 1;