Vinzenz Mai: MySQL-Abfrage

Beitrag lesen

Hallo,

möchtest Du nicht die älteste Person von jedem Ort haben?

Doch, die älteste WEIBLICHE Person aus jedem Ort. Ich verstehe nicht, weshalb meine Lösung nicht funktioniert.

weil sie syntaktischer Mist ist. Jedes andere Datenbankmanagementsystem, das mir bekannt ist, wird eine Fehlermeldung ausspucken, aber kein Ergebnis liefern. Ja, ich finde das gut. Nein, ich finde das dokumentierte Verhalten von MySQL ziemlich dämlich. Es verwirrt Einsteiger wie Dich.

Wenn Du keinen Namen benötigst, dann benötigst Du kein Subselect:

  
SELECT           -- Gib mir  
    location,    -- den Ort  
    MAX(age),    -- den höchsten Alterswert  
    sex          -- und das Geschlecht  
FROM             -- aus  
    tabelle      -- meiner Tabelle  
WHERE            -- wobei nur  
    sex = 'w'    -- Frauen berücksichtigt werden sollen  
GROUP BY         -- gruppiert  
    location,    -- nach Ort  
    sex          -- und Geschlecht  

Möchtest Du jedoch die älteste Person unabhängig vom Geschlecht haben, dann geht das nicht mehr, wie Du dem von mir verlinkten Archivposting entnehmen kannst. Möchtest Du noch weitere Informationen wie zum Beispiel den Namen der Person oder die Anschrift ermitteln, dann geht das auch *nicht* mehr. In diesen Fällen benötigst Du eine korrelierte Unterabfrage.

Freundliche Grüße

Vinzenz