PostgreSQL,从连接表中获取列名

时间:2017-02-13 05:52:10

标签: sql postgresql

每当我在浏览器中对数据库查询进行一些更改时,我都会手动指定列名。然后,我希望这个过程是通用的,所以我决定对列名进行查询。

到目前为止,我已经阅读了其他一些帖子,看起来下面的代码适用于没有任何连接的普通表。

select column_name
from information_schema.columns
where table_name='table_name';

但是,我想从内部联接表中获取列名。有没有办法达到我想要的目的?

以下是我当前项目的示例,我使用内部联接查询连接了三个表。

select * 
from analytic 
inner join (select * from session_analytic 
    inner join  (select session_uid from title_session where title_uid = '1234')
    as n2 using(session_uid))
as n3 using(analytic_uid);

作为我得到的查询的结果

--------------------------------------------------------------------------------
|analytic_uid | total_playtime | total_frame | total_score | layer1_score |... |
|-------------|----------------|-------------|-------------|--------------|----|
|1            |         21.694 |         471 |           1 |           20 |... |
|2            |          22.92 |         494 |           1 |            0 |... |
|3            |          40.92 |         329 |           1 |            0 |... |
|4            |         15.642 |         900 |           1 |            1 |... |
|5            |        120.754 |        2400 |           0 |            0 |... |
|6            |          5.878 |         323 |           1 |            0 |... |
|7            |         26.177 |         614 |           0 |            0 |... |
|8            |         21.959 |         517 |           1 |            0 |... |
|9            |         10.759 |         227 |           1 |            0 |... |
|10           |         35.458 |        2035 |           0 |            0 |... |
--------------------------------------------------------------------------------

我想用查询检索列名。所以我可以得到这样的东西。格式目前并不重要。

  

[analytic_uid,total_playtime,total_frame,total_score,layer1_score,...]

1 个答案:

答案 0 :(得分:2)

您可以将内部联接表用作新创建的表,然后像往常一样以子查询样式获取其列名。

select column_name from 
    information_schema.columns
    where
    (select table1, table2) as inner_joined_table;