Hi guy's,
Ik wil een alias gebruiken als tablename, (zie hieronder).
Hoe kan ik dit werkend maken?

SELECT
id AS Id1, Title
FROM
database.TableAlias
WHERE
(SELECT
Name AS TableAlias
FROM
database.Names
WHERE id=1
)
;
Dit is een oplossing mbv PHP, maar is het niet mogelijk om dit geheel in 1 query door MySQL te laten uitvoeren?

<?php
$sql = "SELECT * FROM Modules WHERE id = 1;";

$res = mysql_query($sql);
$rec = mysql_fetch_array($res);

$sql1 = "SELECT * FROM ".$rec[1].";";
$res1 = mysql_query($sql1);

while ($rec1 = mysql_fetch_array($res1)) {
echo "rec: ".$rec1[1]."<br />\n";
}

?>
Is het ook niet mogelijk om dit dmv een join te realiseren?
Volgens mij moet dit gewoon kunnen

SELECT jouw, ding FROM (
SELECT rec1 FROM modules)

niet getes wel eens gebruikt in Oracle ga ervan uit dat dat in mysql ook wel kan.

Edit nu wel getest.


SELECT link
FROM (

SELECT alle.link
FROM linken AS alle
) AS eenlink
LIMIT 0 , 30


geeft keurig alle gevraagde gegevens. Let op met naamgeving in je subquery.
geheid dat je de volgende pagina nodig hebt
http://dev.mysql.com/doc/refman/5.0/en/unnamed-views.html
Thnx, KlaasJan!!

De fout zat dus in het plaatsen van een WHERE clause: en geen datamodelling ;) en/of Normalisatie... ;) (Maar het is wel goed om daar goed op te letten.)

Mijn script:
<?php
SELECT
id AS Id1, Title
FROM
database.TableAlias
WHERE
(SELECT
Name AS TableAlias
FROM
database.Names
WHERE id=1
)
;
?>

Script klaasjan:
<?php
SELECT link
FROM (

SELECT alle.link
FROM linken AS alle
) AS eenlink
LIMIT 0 , 30
?>

Thanks,

Reageren