2010-11-14 88 views
1

假设我有一个这样的命令:从SELECT命令创建一个新表

select name, age, haircolor from people where shoesize > 10; 

有没有办法,我可以创建基于什么命令返回一个新表的方法吗?我想将该命令的输出传送到一个新表中。

含义:

mysql> show tables; 
+-----------------+ 
| Tables_in_db1 | 
+-----------------+ 
| people   | 
+-----------------+ 
1 rows in set (0.00 sec) 

mysql> CREATE TABLE FROM "select name, age, haircolor from people where shoesize > 10;"; 
..? 

mysql> show tables; 
+-----------------+ 
| Tables_in_db1 | 
+-----------------+ 
| people   | 
| NEW TABLE  | 
+-----------------+ 
1 rows in set (0.00 sec) 

回答

3

是的,CREATE TABLE语法支持在最后一个选项的SELECT语句,也可以是这样简单:

CREATE TABLE foo 
SELECT bar FROM xyz; 
1

是的,当然,例如:

CREATE TABLE your_table AS SELECT name, age -- ... 

你可以看到更多的有关语法here