我正在尝试使用SELECT
子句中的查询结果。
我查询information_schema
以获取要选择的列名称。然后,我使用CONCAT
和GROUP_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表,其中表名只在运行时知道,以报告受单个更改影响的所有数据。