Ik wil nu een query maken:
SELECT username AS uTabName FROM users where id =1;
Dat gaat natuurlijk,...
En dan deze username gebruiken in de volgende query als tabelnaam;
SELECT * FROM uTabName;
Dus een Alias als Tabelnaam...
EDIT:
En deze query in 1 keer uitvoeren (of query's samenvoegen, als het mogelijk is.) Of moet ik het resultaat in PHP verwerken en gewoon los een 2e query loslaten???
Ik neem aan dat 'database' een tabelnaam is in je systeem?
In dat geval heb je het 'probleem' dat DATABASE ook een gereserveerd keyword is binnen mysql. Dat de tabelnaam voor een 'keyword' wordt gezien kun je voorkomen door met backticks je tabelnamen en kolommen aan te geven
Tevens kan, wat je wilt bereiken, vrees ik niet in 1 query.. (maar ik heb nog nooit een dergelijke constructie gezien of geprobeerd, dus misschien ben ik onwetend daarin). Maar ik zou zo iets dan verwachten:
SELECT `id` AS `Id1`, `Title`
FROM `database`.`TableAlias`
WHERE
(
SELECT `Name` AS `TableAlias`
FROM `database`.`Names`
WHERE `id` = 1
);
Ik wil nu een query maken:
SELECT username AS uTabName FROM users where id =1;
Dat gaat natuurlijk,...
En dan deze username gebruiken in de volgende query als tabelnaam;
SELECT * FROM uTabName;
STOP !!!
Jij hebt een ernstige fout in het datamodel zitten. Je maakt namelijk helemaal nooit, maar dan ook nooit een nieuwe tabel aan wanneer er toevallig een nieuwe gebruiker bijkomt. De tabel 'naamJan' kan dus gewoon niet bestaan.
Maak een tabel 'notes' aan en zet hierin alle notes van alle gebruikers. Uiteraard maak je een kolom 'user_id' aan om de juiste gebruiker te kunnen herkennen.
Tip: ga je eens verdiepen in normaliseren, ik vermoed dat je nog wel meer van dit soort fouten en foutjes in je systeem hebt zitten.
Offtopic: Backtics ` horen in de afvalbak, niet in een query! Nu niet, nooit niet. Die troep dus niet meer gebruiken.
database heb ik alleen gebruikt om database en tabelnaam aan te geven.
mbv backticks maak je volgens mij geen onderscheid tussen een werkelijke tabelnaam en een alias. Maar jou voorbeeld is correct, maar werkt niet (ook) niet. (alleen backticks toegevoegd ;) ).
@pholeron:
OFF TOPIC: misschien geeft jou MySQL highlight script wel raadt :D:D ;)
database heb ik alleen gebruikt om database en tabelnaam aan te geven.
Precies, daarom snap ik ook niet wat 'database' in de query doet. Je bent namelijk al verbonden met de database, het is dus volkomen zinloos (en fout) om dit nogmaals op te geven.
mbv backticks maak je volgens mij geen onderscheid tussen een werkelijke tabelnaam en een alias. Maar jou voorbeeld is correct, maar werkt niet (ook) niet. (alleen backticks toegevoegd ;) ).
GEBRUIK NOOIT BACKTICS !!!! Ritueel verbranden die zooi, ga je in de hoek zitten schamen dat je ze ooit hebt gebruikt en vergeet vervolgens dat ze bestaan.
En verder, zie mijn opmerking over het datamodel, daar heb je echt een ernstige fout in zitten. Ga dat nu oplossen voordat je echt hopeloos in de problemen komt te zitten.
@Frank:
1) Relax!!!, ik snap je frustratie over datamodelling en normaliseren,....
Mij datamodel klopt wel, en ik zit op de Xe normalisatie vorm, maar ik wil het nog dynamischer maken.
Ik wil graag met modules een systeem opbouwen, waarin in een tabel(Modules) de namen van de aanwezige modules (ModuleName) staan.
Iedere module heeft een eigen tabel, met module specifieke records.
Doormiddel van een ModuleId en RecordId wil ik RecordId-gegevens uit de tabel ModuleId-tabel.