我对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上的列名,并使用输出表列名称切换它。
有可能吗? 怎么样?
谢谢! 然
答案 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翻译 - 只需硬编码直接作为别名。