MySQL - SELECT子句中的子查询

时间:2015-04-14 13:13:01

标签: mysql select subquery

我正在尝试使用SELECT子句中的查询结果。

我查询information_schema以获取要选择的列名称。然后,我使用CONCATGROUP_CONCAT将结果格式化为以下格式:

table1.column1,table1.column2,table1.column3,table1.column4

以下是声明:

SELECT Group_concat(DISTINCT Concat("table1.", column_name)) 
FROM   information_schema.columns 
WHERE  table_name = "table1";

现在,我想在这样的查询中使用这些结果:

SELECT (SELECT Group_concat(DISTINCT Concat("table1.", column_name)) 
        FROM   information_schema.columns 
        WHERE  table_name = "table1") 
FROM   table1;

这会错误地返回以下结果:

+-----------------------------------------------------------------------------------------------------------------------------+
| (SELECT Group_concat(DISTINCT Concat("table1.", column_name)) FROM information_schema.columns WHERE  table_name = "table1") |
+-----------------------------------------------------------------------------------------------------------------------------+
| table1.column1,table1.column2,table1.column3,table1.column4                                                                 |
| table1.column1,table1.column2,table1.column3,table1.column4                                                                 |
| table1.column1,table1.column2,table1.column3,table1.column4                                                                 |
+-----------------------------------------------------------------------------------------------------------------------------+

它应该返回类似于以下结果的结果:

SELECT * FROM table1;

似乎this person设法使其正常运行,但我无法从该问题中找到错误。

注意:我想这样做最终有一个脚本可以动态JOIN表,其中表名只在运行时知道,以报告受单个更改影响的所有数据。

0 个答案:

没有答案