创建一个表+使用One Query中的另一个表填充它

时间:2013-05-02 13:05:32

标签: sql

我正在使用Access 2000,我有2个查询:

第一个是:

CREATE TABLE first_table_name (....)

第二个是:

INSERT INTO first_table_name [(column1, column2, ... columnN)] 
   SELECT column1, column2, ...columnN 
   FROM second_table_name
   [WHERE condition];

只用一个查询就可以做同样的事情(创建一个表并立即用另一个表填充它)吗?

谢谢!

6 个答案:

答案 0 :(得分:6)

SELECT column1, column2, ...columnN 
   into first_table_name 
   FROM second_table_name
   [WHERE condition];

first_table_name将具有与第二个表名相同的表列

答案 1 :(得分:3)

SELECT column1, column2, ...columnN 
INTO new_table
FROM second_table_name
[WHERE condition];

答案 2 :(得分:1)

方法1: INSERT INTO SELECT

INSERT INTO Table1 (col1, col2)
SELECT col1, col2
FROM Table2

方法2: SELECT INTO

SELECT col1, col2
INTO Table1 
FROM Table2

注意:表包含相同的架构

答案 3 :(得分:0)

可以在一个表中插入从另一个表中选择的记录,这里是doc。如果您使用的是mysql:mysql insert select

答案 4 :(得分:0)

CREATE TABLE new_table AS SELECT col1, col2, ... FROM second_table_name WHERE ...

答案 5 :(得分:0)

唯一的方法是:

SELECT blah INTO [ #local | ##global ] FROM ... WHERE

但这不是永久性的表格,并且会在......时消失。

如果是#local表,那么当用户断开连接时  if ## global table然后当所有使用它的用户断开连接时

所以不是一个好的解决方案。

你可以编写一个存储过程来执行create + insert,然后只用一个后续语句在很多地方执行它,但这有点作弊。