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