Vinzenz Mai: Tabelle durch Value ansprechen

Beitrag lesen

Hallo,

heute würde ich gerne eine Tabelle durch einen Value ansprechen.
In einer Tabelle (zuordnung) hab ich ua. folgende Information:

ID; TABELLENNAME
1; tabelle
2; dings
3; zeugs
4; wasanderes

Dann hab ich da einen normalen Select Query:
select * from tabelle;

das ist alles andere als "eine normale Abfrage". In normalen Abfragen ist * eher selten zu finden.

Das würde ich jetzt gerne durch sowas ersetzen:
select * from (select TABELLENNAME from zuordnung where ID = 1);

Geht sowas?

Diese Abfrage ist syntaktisch beinahe in Ordnung. Sie lieferte nur etwas anderes als Du erwartest. Um den Aliasnamen ergänzt und etwas lesbarer geschrieben, liefert folgendes Statement:

SELECT  
    a.*  
FROM (  
    SELECT             -- Großschreibung ist für SQL-Schlüsselwörter üblich  
        TABELLENNAME   -- für Spalten oder Tabellennamen jedoch nicht  
    FROM  
        zuordnung  
    WHERE  
        ID = 1  
) a;  

bei Deinen Daten folgende Ergebnismenge:

TABELLENNAME
------------
tabelle

Dein Vorhaben ist daher nicht in dieser Form und nicht in jedem Datenbankmanagementsystem umsetzbar. Aber es gibt welche, die das können, was Du zu brauchen glaubst. Ob Deines dazugehört, kann ich nicht beurteilen, weil Du nicht angegeben hast, welches Du (in welcher Version) verwendest.

Ob das, was Du vor hast, eine gute Idee ist, ist wiederum eine andere Frage ...

Freundliche Grüße

Vinzenz