SELECT MAX (SELECT ...) klappt nicht.



  • Hallo,

    ich habe eine auf mehrere Tabellen verteilte eindeutige ID, aber ich schaffe es nicht mir "die nächste freie ID" geben zu lassen. Wohl kann ich mir aber alle zusammen anzeigen lassen:

    SELECT obj_id from items
    union
    SELECT obj_id from peoples
    union
    SELECT obj_id from npcs;

    aber
    SELECT MAX (obj_id) FROM (
    SELECT obj_id from items
    union
    SELECT obj_id from peoples
    union
    SELECT obj_id from npcs );

    führt zu folgendem Fehler:"1248 - Every derived table must have its own alias"
    Den Fehler verstehe ich aber nicht, was mache ich falsch?

    DB: MySQL 5.0 rev 19
    OS: Win32
    Copmpiler: MinGW (vielleicht gibts ja im Compiler irgendwelche Routinen die hier helfen)

    Gruss
    R



  • Mach ne View und auf die das Select mit dem Max.



  • oder gebe dem select in den klammern einen alias, wie die meldung fordert:

    SELECT MAX (obj_id) FROM ( 
    SELECT obj_id from items 
    union 
    SELECT obj_id from peoples 
    union 
    SELECT obj_id from npcs ) as a;
    

    das as kann man sich wahrscheinlich auch sparen.

    jenz



  • Wozu willst du alle IDS aus jeder Tabelle?
    Es reicht doch wenn du eine Tabelle abfragst.
    Solltre das so nicht gehen dann hast du einen entscheidenden Designfehler.


Anmelden zum Antworten