Yadgar: [MySQL 5.0] Merkwürdige Fehlermeldung

Beitrag lesen

High!

Meine Glaskugel sagt mir, dass die Versionen von MySQL zu Hause und auf dem Server unterschiedlich sind. Auf dem Server wird Version 4.0 oder noch kleiner zu finden sein. Die kann keine Subselects. Doch lass dir das von MySQL selbst sagen -> Fehlerbehandlung ins Script einbauen.

In der Tat... select version() ergibt 4.0.25... jetzt werde ich die Queries wohl umstricken müssen!

Und das wird ein Problem, da Subqueries ja erst ab 4.1 drin sind!

Konkret geht es um Folgendes: Es gibt (unter anderem) in meiner Datenbank eine Stammdatentabelle "Orgeln" (die z. B. die Modellnamen) enthält, eine Stammdatentabelle "Marken" und eine Stammdatentabelle "Klaviaturen". Da zwischen "Orgeln" und "Klaviaturen" eine n:n-Beziehung besteht (jede Orgel hat ein Pedal und mindestens ein Manual, also mindestens 2 Klaviaturen, wie umgekehrt jeder Klaviaturtyp an beliebig vielen Orgeln verbaut sein kann) außerdem eine Relationentabelle Orgeln_Klaviaturen.

Mir alle Orgelmodelle mit der Anzahl ihrer Klaviaturen anzeigen zu lassen (die Markennamen lasse ich der Einfachheit halber hier erstmal weg) ist kein Problem:

  
select orgeln.Modell, count(*) as Anzahl from orgeln_klaviaturen inner join orgeln where orgeln.Nr = Orgel_Nr group by Orgel_Nr;  

Aber wie kann ich diese Ausgabe auf einen bestimmten Wert in "Anzahl" einschränken, ohne eine Subquery zu verwenden? "Anzahl" entsteht ja erst in dieser Abfrage...

Bis bald im Khyberspace!

Yadgar