首页 > 解决方案 > 如何从我从另一个表中获取名称的表中获取值

问题描述

我有这张桌子:

MASTER_TABLE:

ID.        TABLE_NAME.        COLUMN_NAME:
-----------------------------------------
1.         tablename_1        name
2.         tablename_2.       age

接着:

表名_1

ID.     NAME.           AGE:
----------------------------
1.      XXXX            100
2.      YYYY.           200

是的,我知道这很奇怪。所以我需要做的是从 TABLENAME_1 中获取姓名和年龄,但我不知道表的名称,为了获取表的名称,我只有一个来自 MASTER_TABLE 的 ID,所以我可以获取表名,因为对于 TABLENAME_1 的每个字段,MASTER_TABLE 中都有一行,我可以从中获取表名和列名

我知道这应该很简单,但我正在努力解决它,甚至在谷歌上问正确的问题

所以我认为这可以做到:

select name, age 
from 
    (select TABLE_NAME from MASTER_TABLE where id = 1) as table

但我得到的只是表的名称。

有人可以请为什么这不起作用并且破坏了我的 SQL 心理模型吗?xD

由于我的理解是使用子查询,我将表的名称赋予 FROM 子句,然后主 SELECT 可以检索实际的名称和年龄字段,因为 FROM 指向正确的表

任何解释为什么这是错误的?

谢谢!

标签: sqlpostgresql

解决方案


推荐阅读