连接表列名称等于单元格值的表

时间:2014-09-13 09:52:07

标签: mysql sql database phpmyadmin

我对sql不是很敏锐,我有一个问题。 我有两个表,简化后看起来像这样:

T1

id |     name     | photo
1  | robert       | img1.jpg
2  | john         | img2.jpg
1  | jess         | img3.jpg

T2

id |     title    | field
1  | User Name    | name
2  | User Photo   | photo

我希望输出如下:

     User Name    | User Photo
     robert       | img1.jpg
     john         | img2.jpg

在简单的解释中,我想从T2中获取title列的值,其中字段值等于T1上的列名,并使用输出表列名称切换它。

有可能吗? 怎么样?

谢谢! 然

1 个答案:

答案 0 :(得分:0)

当我commented时,您想要的输出只是带有别名的T1。

别名可以像:

一样使用
SELECT `name` AS `User Name`, `photo` AS `User Photo`
FROM `T1`;

在我知道的任何RDBMS中都不可能使用动态别名,当然也不能在MySQL中使用动态别名。做类似的事情:

SELECT  `name` AS ( SELECT `title`
                    FROM `T2`
                    WHERE `field` = 'name'),
        `photo` AS (SELECT `title`
                    FROM `test`.`title_photo`
                    WHERE `T2`)
FROM `T1`;

会出现语法错误。

即使它会让你这样做,你也不会从中获得任何东西,因为它只是一个列的名称而且它是直接的1对1翻译 - 只需硬编码直接作为别名。