2010-11-14 4 views
1

Supposons que j'ai une commande comme ceci:Créer une nouvelle table à partir d'une commande de sélection

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

Est-il possible que je peux créer une nouvelle table en fonction de ce que commande retourne? Je veux diriger la sortie de cette commande vers une nouvelle table.

Signification:

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) 

Répondre

3

Oui, la syntaxe CREATE TABLE prend en charge une option instruction SELECT à la fin, il peut être aussi simple que cela:

CREATE TABLE foo 
SELECT bar FROM xyz; 
1

Oui, bien sûr, par exemple:

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

Vous pouvez en savoir plus sur la syntaxe here.

2

Vous pouvez utiliser MySQL's create table...select syntax:

Vous pouvez créer une table de une autre en ajoutant une instruction SELECT à la fin de l'instruction CREATE TABLE:

CREATE TABLE new_tbl SELECT * FROM orig_tbl; 
Questions connexes