每当我在浏览器中对数据库查询进行一些更改时,我都会手动指定列名。然后,我希望这个过程是通用的,所以我决定对列名进行查询。
到目前为止,我已经阅读了其他一些帖子,看起来下面的代码适用于没有任何连接的普通表。
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,...]
答案 0 :(得分:2)
您可以将内部联接表用作新创建的表,然后像往常一样以子查询样式获取其列名。
select column_name from
information_schema.columns
where
(select table1, table2) as inner_joined_table;