我想从select查询得到的变量多表名创建一个表/视图。
可以从多个已知表创建一个表,如下所示:
CREATE TABLE new_table AS
SELECT column_1, column_2
FROM clients_1, clients_2, ... clients_n;
要获取表列表,我可以使用以下方法:
SELECT DISTINCT table_name FROM information_schema.columns WHERE table_name like '%clients_%';
返回:
table_name
1 clients_1
2 clients_2
如何在CREATETABLEFORM子句中将表名结果用作列表?
我试过这样的方法:
WITH mytable AS
(SELECT DISTINCT table_name FROM information_schema.columns WHERE table_name like '%clients_%')
CREATE TABLE new_table AS
SELECT column_1, column_2
FROM mytable;
但它基本上不起作用。
即使是这样,例如不使用with并选择*列-
CREATE TABLE new_table AS
SELECT *
FROM (SELECT DISTINCT table_name FROM information_schema.columns WHERE
table_name like '%clients_%');
新的表只是mytable/嵌套查询的一个副本。
思想?
谢谢!
1条答案
按热度按时间rmbxnbpk1#
最后我看到了这样的景象:
缺点是每当添加新的client表时,我都必须更新视图,并显式指定表的名称,而不是从查询中推断它们,
但我可能不得不将它分成两个查询,即使按照最初的意图创建一个表。