当前位置: 首页 > 知识库问答 >
问题:

SQL:错误1054(42S22)having子句中的列未知

孔鸿远
2023-03-14
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;

有人能修好它吗?

共有1个答案

白宏大
2023-03-14

您可能想要:

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子句匹配或使用聚合函数。

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;
 类似资料: