MySQL – Sortierung in UNION Statements

Heute sind meine Frau und ich über ein kleines My-SQL-Problem gestolpert. Wir hatten ein Statement der Art

( SELECT …. ORDER BY …) UNION (SELECT ….. ORDER BY … )

Wir waren beide der Meinung, dass das zusammengesetzte Ergebnis pro Einzelresultset die jeweils gewünschte Sortierung aufweisen würde. Das war aber leider nicht der Fall !

Dabei hatten wir bereits früher ähnliche Statements verwendet, in denen die Sortierung funktionierte! Wir hatten jedoch eine bedeutsame Kleinigkeit übersehen. Unsere früheren Statements waren nämlich von der Art:

( SELECT …. ORDER BY … LIMIT .. ) UNION (SELECT ….. ORDER BY … LIMIT …. )

Der Unterschied liegt in der Vorgabe von LIMIT, also der Begrenzung der jeweiligen Teil-Resultsets im UNION-Statement. Wir haben dann ein wenig herumprobiert und herausgefunden, dass eine LIMIT-Vorgabe tatsächlich erforderlich ist, wenn beide (oder mehrere) Resultsets separat sortiert und danach zum Union-Resultset zusammengefügt werden sollen.

Offenbar ignoriert der MySQL-Optimizer die ORDER-Statements der Teil-Selects, wenn die einzelnen Resultsets nicht explizit begrenzt werden.

Somit stehen einem wohl zwei Arten zur Verfügung, wei man ein UNION-Resultset ordnen kann:

  • Variante 1 – separate Sortierung der Einzel-Resultsets :

        ( SELECT …. ORDER BY … LIMIT … ) UNION (SELECT ….. ORDER BY … LIMIT … )

  • Variante 2 – Sortierung des Gesamt-Resultsets :

        ( SELECT …. ) UNION (SELECT …. ) ORDER BY ….

Hinweise:
Die Klammerung ist mindestens im zweiten Beispiel von ausschlaggebender Bedeutung.
Klar auch, dass dabei die Felder der Einzel-Selects identisch sein sollten.

Links:
In einigen MySQL-Foren findet man tatsächlich auch entsprechende Hinweise. Man sollte da doch öfter mal reinschauen:

http://www.mysqlfaqs.net/mysql-faqs/Funtions-and-Operators/How-does-union-work-in-MySQL
http://forums.mysql.com/read.php?10,412000,412000

Buchempfehlungen zu CSS2

Gestern fragte mich ein Bekannter, welche Bücher ich ihm für eine Einarbeitung in CSS2 empfehlen könne. Wichtig war ihm auch, dass auf praxisnahe Aufgabenstellungen eingegangen wird. Vielleicht interessiert meine Empfehlung auch andere:

Ich empfehle

  • als Basis: “Cascading Style Sheets”, Eric A. Meyer, O’Reilly (das
    Referenzwerk zum Einsteigen und Nachschlagen vom Guru)
  • für das Erlernen grundlegender Design-Tricks: “CSS Mastery”, A. Budd, C.Moll, S. Collison,
    Addison-Wesley (ein sehr gutes Buch)
  • zur Vertiefung: “Fortgeschrittene CSS-Techniken”, I. Chao, C. Rudel, Galileo
    Computing (ein sehr gutes Buch, teilweise Überlapp mit CSS Mastery, aber
    aktueller, mit vielen interessanten Details und nützlichen Hinweisen zu Browserunterschieden)
  • ergänzend: “Eric Meyer on CSS”, E.A.Meyer, New Riders (Fallstudien von
    E.Meyer)

Ich habe die Bücher selbst und nutze Sie immer wieder gerne.

ISO/IEC 20000 auf Professional Level – eine Empfehlung

Mal ein IT-lastiges Thema außerhalb von Linux. Es geht um QM/ITSM-Kurse. Ich spreche selten Empfehlungen aus, möchte dies an dieser Stelle aus gegebenem Anlass aber einmal tun.

Ich habe vor kurzem zwei Kurse zum Themenkreis ISO 20000 (also ITSM) absolviert und entsprechende Zertifikate erworben.

a) ISO/IEC 20000 Foundation
b) ISO/IEC 20000 Associate Consultant / Auditor (Professional Level)

Beide Kurse durchlief ich beim mITSM Institut in München (http://www.mitsm.de/). Schulungsleiter des Professional Level Kurses war Herr Dr. Thomas Schaaf (http://www.nm.ifi.lmu.de/~schaaf/).

Der letztgenannte Kurs verlangt vom Absolventen viel, und die Prüfung sowie die Vorbereitung darauf sind mit Stress verbunden. Das verwundert angesichts der Tatsachen, dass hier die Themen von 5 einzelnen Professional Kursen in einer Woche recht umfassend angeschnitten werden, dass die Prüfungsfragen aus dem gleichen Pool wie bei den 5 Einzelkursen stammen, man aber in der Prüfung pro Frage weniger Zeit zum Antworten als in den Standardkursen hat, kaum. Umso wichtiger ist ein guter Dozent.

Ich kann diesen Kurs beim genannten Institut und speziell den erwähnten Schulungsleiter für alle, die sich für ITSM-Themen und QM-Aufgaben im IT-Umfeld interessieren, nur wärmstens empfehlen. Hr. Dr. Schaaf versteht es aus meiner Sicht ausgezeichnet, komplexe Zusammenhänge zwischen ITSM-Prozessen generell und den ISO 20000 Prozessen im besonderen kompakt und verständlich darzustellen. Langweilig wurde mir dabei nie. Hr. Dr. Schaaf konnte den Kursteilnehmern alle (!) aufkommenden Fragen in Tiefe und im Detail beantworten. Hervorzuheben ist auch sein umfassendes Wissen in vielen anderen QM-/ITSM-Frameworks, und von daher wurde der Kurs immer wieder durch vergleichende Blicke auf ISO9000, ITIL, Cobit, Mof etc. und entsprechende Ausführungen angereichert. Das waren wirklich 5 interessante und spannende Tage, die ich inhaltlich sehr genossen habe.

An dieser Stelle mein Dank ausdrücklicher an Hrn. Dr. Schaaf. Er hat mir in vielen Punkten eine neue Sicht auf das Themenfeld ITSM und QM vermittelt. Dass ich die Prüfung erfolgreich bestanden habe, habe ich trotz viel Berufserfahrung und vorhandenen ISO9000 wie ITIL-Kenntnissen vor allem seinem exzellenten Unterricht zu verdanken.

Bleibt nur der Wunsch, dass sich in Deutschland einmal ein Opensource-lastiges IT-Unternehmen nach ISO 20000 zertifizieren möge und es in Zukunft über OTRS hinaus umfassendere opensource-basierte ITSM-Tools geben möge.